誰能告訴我如何在不使用循環的情況下在不同的行中打印數組的值?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**
可能嗎?
誰能告訴我如何在不使用循環的情況下在不同的行中打印數組的值?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**
可能嗎?
您可以將$,
特殊變量設置爲無論您想要分隔列表元素。這應該做你想要什麼:
$, = "\n";
my @a = ('Test1','Test2','Test3');
print @a;
您可以設置$」變量
$" = "\n";
它可能會更好做
{
local $" = "\n";
print "@ar";
}
編輯:根據camel book
:
$」(或替代$ LIST_SEPERATOR)指定的字符串時,數組內插到雙引號字符串各要素間的投入,這對於情況下,你想說:
print "@ar";
$(或替代$ OUTPUT_FIELD_SEPERATOR)指定要在打印列表時放置在各個元素之間的字符串。它最初是空的。您可以設置$,對於情況下,你想說:
print @ar;
你可以這樣做:
print join("\n", @ar);
使用地圖功能
打印@array = {地圖「$ _ \ n 「} @一個;
這隻會與傳遞給print(`print @ a`)的多個元素而不是一個字符串一起工作。 – ysth 2011-01-12 06:22:33