Hacker News new | ask | show | jobs
by ksherlock 1381 days ago
Please don't blame bare word file handles on "C heritage"

--

Some of the improvements were needed because in places Perl’s Unix/C heritage shows through a little more than we’d like it to in the 21st century. One good example of this is bareword filehandles. You’re probably used Perl code to open a file looking like this:

open FH, 'filename.dat' or die;

1 comments

Maybe the thinking was that Perl's STDIN, STDOUT, STDERR, came from c's (well, stdio.h's) stdin, stdout, stderr?

Which then inspired the bad idea of expanding on that?

It's more from sed/awk/shell I suppose.

eg, open FH, "<filename"

vs FILE *fh = fopen("filename","r")

For the <,> and variations, sure. Though IO::File has been there a long time and looks a lot more like your C example. IO::Handle also.

Supports, for example:

$fh = IO::File->new("filename", "r");

Or, as with C, things like O_WRONLY|O_APPEND in place of "r".