Hello rich.wilder,
If you’d kept reading, you’d have come to the section “Filehandles” beginning on page 21. GRADES is a bareword (a string1 not preceded by a sigil), here technically a typeglob used as a filehandle. Originally, this was the only way to name filehandles in Perl, but in modern Perl the preferred way is to use a lexical scalar variable:
open(my $grades, ...
See, e.g., this reference.
Note that Perl still predefines some “special” bareword filehandles: STDIN, STDOUT, STDERR, ARGV. See perlopentut.
1Update: I should have said, an unquoted sequence of non-whitespace characters.
Hope that helps,
| [reply] [d/l] [select] |
rich.wilder welcome,
to open a file handle the lexical form explained above is, nowadays, a must. Perl is better when you choose the right idiom. In this case the idiom is:
open my $file_handle, '>', '/path/file.ext' or die "Open failed
+: $!";
# or to be clean put parens to open args
open (my $file_handle, '>', '/path/file.ext') or die "Open fail
+ed: $!"
For future reference and further reading you can visit Re: Why don't file handles have sigils? (*) where tye says that the sigil for global filehandles is * like it happens for globs.
L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
| [reply] [d/l] [select] |