in reply to Sigils & Nowns?

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,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: Sigils & Nouns?
by Discipulus (Canon) on Sep 30, 2015 at 07:02 UTC
    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.