---
name: "Perl::Critic::Policy::Community::BarewordFilehandles"
section: "3pm"
platform: "linux"
package: "libperl-critic-community-perl"
version: "1.0.4-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Perl::Critic::Policy::Community::BarewordFilehandles"
---

# Perl::Critic::Policy::Community::BarewordFilehandles(3pm)

Don't use bareword filehandles other than built-ins

## NAME

Perl::Critic::Policy::Community::BarewordFilehandles - Don't use bareword filehandles other than built-ins

## DESCRIPTION

Bareword filehandles are allowed in `open()` as a legacy feature, but will use a global package variable. Instead, use a lexical variable with `"my"` so that the filehandle is scoped to the current block, and will be automatically closed when it goes out of scope. Built-in bareword filehandles like `"STDOUT"` and `"DATA"` are ok.

```
  open FH, '<', $filename;     # not ok
  open my $fh, '<', $filename; # ok
```

This policy is similar to the core policy Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles, but allows more combinations of built-in bareword handles and filehandle-opening functions such as `"pipe"` and `"socketpair"`.

## AFFILIATION

This policy is part of Perl::Critic::Community.

## CONFIGURATION

This policy is not configurable except for the standard options.

## AUTHOR

Dan Book, `"dbook@cpan.org"`

## COPYRIGHT AND LICENSE

Copyright 2015, Dan Book.

This library is free software; you may redistribute it and/or modify it under the terms of the Artistic License version 2.0.

## SEE ALSO

Perl::Critic, bareword::filehandles
