Tielman Koekemoer (TNE) wrote:
Hi all,
Hello,
Why can't I use a subscript in the angle brackets? e.g. @files=`ls /app2/koekemtn/scripts/dbstats/test`; chomp $files[0]; open ( $files[0] , "<$files[0]") || die "Cannot open $files[0]\n"; while (<$files[0]>) { print "$_"; }
perldoc perlop [snip] I/O Operators [snip] If what the angle brackets contain is a simple scalar variable (e.g., <$foo>), then that variable contains the name of the filehandle to input from, or its typeglob, or a reference to the same. For example: $fh = \*STDIN; $line = <$fh>; If what's within the angle brackets is neither a filehandle nor a simple scalar variable containing a filehandle name, typeglob, or typeglob reference, it is interpreted as a filename pattern to be globbed, and either a list of filenames or the next filename in the list is returned, depending on context. This distinction is determined on syntactic grounds alone. That means "<$x>" is always a readline() from an indirect handle, but "<$hash{key}>" is always a glob(). That's because $x is a simple scalar variable, but $hash{key} is not--it's a hash element. John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>