2011-01-12 22 views
1

誰能告訴我如何在不使用循環的情況下在不同的行中打印數組的值?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** 

可能嗎?

回答

1

您可以將$,特殊變量設置爲無論您想要分隔列表元素。這應該做你想要什麼:

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

這隻會與傳遞給print(`print @ a`)的多個元素而不是一個字符串一起工作。 – ysth 2011-01-12 06:22:33

4

您可以設置$」變量

$" = "\n"; 

它可能會更好做

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

編輯:根據camel book

$」(或替代$ LIST_SEPERATOR)指定的字符串時,數組內插到雙引號字符串各要素間的投入,這對於情況下,你想說:

print "@ar"; 

$(或替代$ OUTPUT_FIELD_SEPERATOR)指定要在打印列表時放置在各個元素之間的字符串。它最初是空的。您可以設置$,對於情況下,你想說:

print @ar; 
8

你可以這樣做:

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

使用地圖功能

打印@array = {地圖「$ _ \ n 「} @一個;