gpt4 book ai didi

perl - 为什么我不能在 Perl 中对数组使用菱形运算符?

转载 作者:行者123 更新时间:2023-12-04 01:18:37 26 4
gpt4 key购买 nike

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 时不能按预期工作做。这两种方法不一样吗?这里发生了什么?

最佳答案

由于 <> 运算符的双重性质(即它是 glob 还是 readline ?),规则是作为 readline,您只能在括号内包含一个裸字或一个简单的标量。因此,您必须将数组元素分配给一个简单的标量(如您的示例中所示),或者直接使用 readline 函数。

关于perl - 为什么我不能在 Perl 中对数组使用菱形运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com