joinwith@打印错误的结果
我想知道如何@与join接线员一起使用该标志;这会产生错误的结果:
my $string1 = '00aabb';
my $string2 = '02babe';
print join ("A",@ $string1, $string2);
即:
$ perl b.pl
02babe
那么,如何可以使用@中join,将串联两个字符串,并用分离器加入他们A?我得出了join需要一个数组作为其第二个参数的假设,因此它应该以@. 仅仅
print join("A", $string1, $string2);
工作正常,但我想让它与@preceded 一起工作。
回答
join不需要数组作为其第二个参数;它需要一个列表(不同于数组):
加入 EXPR,LIST
您的第二个代码示例工作正常,因为第二个和第三个参数组成了 2 个项目的列表。join如果您已经有一个数组变量 ( @strings),则可以使用以下方法:
use warnings;
use strict;
my $string1 = '00aabb';
my $string2 = '02babe';
print join ("A", $string1, $string2);
print "n";
my @strings = ($string1, $string2);
print join ("A", @strings);
print "n";
印刷:
00aabbA02babe
00aabbA02babe
的@符号是什么是用于表示一个数组变量。
另请参阅perldoc perldata。
请注意,如果您使用了strict,则会收到错误消息。