有人能告诉我如何在不使用循环的情况下打印不同行中的数组值?
#!/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**
可能吗?
答案 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;