Perl数组是如何工作的 $"

3
我对这段代码的结果感到困惑。
my @lines;
for (my $count = 0; $count < 3; $count++) {

    print "Give me input again ";
    chomp (my $line = <STDIN>);
    $lines[$count] = $line;
}

$" = "|";
print "@lines\n";

当我运行这段代码时,$" = "|";是如何起作用的?结果为One|Two|Three。代码是如何工作的,以便在每个输入之间放置“|”?
2个回答

8

这只是将数组插入双引号字符串中进行内插的操作。

"$foo\n"

是相同的

$foo . "\n"

并且

"@lines\n"

相同。
join($", @lines) . "\n"

这个内容在 perldataperlvar 中都有记录。

3
$"只是Perl中的一个特殊变量名,它告诉解释器如何在双引号字符串上下文中分隔数组元素。默认值为一个空格,但上述代码告诉Perl使用|代替。因此,如果您省略了该行,则默认为 One Two Three ,而不是 One | Two | Three
更多详情请参见http://perldoc.perl.org/perlvar.html#General-Variables

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接