$ cat test1helloi amlazernananana$ cat 1.pluse 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"; $ perl 1.pl15$我不确定为什么 Way1 不能按预期工作而 Way2 可以。这两种方法不一样吗?这里发生了什么? 最佳答案 由于 运算符的双重性质(即它是 glob 还是 readline ?),规则是作为 readline 的行为,括号内只能有一个裸字或一个简单的标量。因此,您必须将数组元素分配给一个简单的标量(如您的示例中所示),或者直接使用 readline 函数。关于perl - 为什么我不能在 Perl 中对数组使用菱形运算符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4305153/
10-13 05:55