Almost universally when people post questions on SO (or elsewhere) about Perl and reading from files, if any code that involves an old-style open
open FH, ">file.txt" or die "Can't open for write, $!"; # OLD way, do not use!
gets yelled at for not using a lexical filehandle. As we all know,
open my $fh, ">", "file.txt" or die "Can't open for write, $!"; # new hotness
is the proper way to open a file handle in modern Perl. What about directory handles? In a few recent SO questions, people have posed questions that involve opendir
, and posted code like
opendir DIR, "/directory" or die "Can't get the directory, wtf?! $!"; # ???
The perldoc pages show
opendir(my $dh, $some_dir) || die "can't opendir $some_dir: $!";
as the example.
Should we be suggesting to folks to use a lexical directory handle for opendir as well?
Definitely. The argument for lexical filehandles for directories is identical to that for files - scoping to the current namespace.
Yes, lexicals are preferred for opendir
as well as open
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With