Почему я не могу использовать оператор ромба с массивом в Perl?

Code

$ cat test1
hello 
i am 
lazer

nananana
$ cat 1.pl
use strict;
use warnings;

my @fh;
open $fh[0], '<', 'test1', or die $!;

my @res1 = <$fh[0]>;  # Way1: why does this not work as expected?
print @res1."\n"; 

my $fh2 = $fh[0];
my @res2 = <$fh2>;    # Way2: this works!
print @res2."\n";

Run

$ perl 1.pl
1
5
$

Я не уверен, почему Way1 не работает должным образом, а Way2 работает. Разве эти два метода не одно и то же? Что здесь происходит?

11
задан Lazer 29 November 2010 в 16:39
поделиться