Perl Array值显示在不同的行中而不使用循环

时间:2011-01-12 06:14:26

标签: perl

有人能告诉我如何在不使用循环的情况下打印不同行中的数组值?

#!/usr/bin/perl -w

my @a = ('Test1','Test2','Test3');
print "@a";# output like **Test1 Test2 Test3** but i want **Test2 in next line and Test3 next to next line**

可能吗?

4 个答案:

答案 0 :(得分:8)

你可以这样做:

print join("\n", @ar);

答案 1 :(得分:4)

您可以设置$“变量

 $" = "\n";

最好做

{
     local $" = "\n";
     print "@ar";
}

编辑:

根据camel book

$“(或替代$ LIST_SEPERATOR)指定在将数组插入双引号字符串时在各个元素之间放置的字符串,对于您想要说明的情况:

print "@ar";

$,(或替代$ OUTPUT_FIELD_SEPERATOR)指定要在打印列表时放置在各个元素之间的字符串。它最初是空的。您可以设置$,对于您想说的情况:

 print @ar;

答案 2 :(得分:1)

您可以将$,特殊变量设置为您想要分隔列表元素的任何内容。这应该做你想要的:

$, = "\n";
my @a = ('Test1','Test2','Test3');
print @a;

答案 3 :(得分:1)

使用地图功能

print @array = map {“$ _ \ n”}} @a;