2010-01-25 34 views
-2

如何將數組的全部內容存儲到標量變量中。 如:如何將Perl數組的全部內容存儲到標量變量中?

my $code = do { local $/; <FILE HANDLE>; }; 

這工作正常文件句柄,但我需要這個數組。

+6

你想做什麼?上升到一個抽象層次,爲什麼你要以標量存儲數組?這種嘗試的目的是什麼?回答這些問題後,我們實際上可以爲您提供有用的幫助。 – daotoad 2010-01-25 07:58:57

+4

最重要的問題:你以後對標量變量究竟做什麼? – ysth 2010-01-25 09:46:09

回答

13

使用join

my $str = join '', @array; 
+1

如果您想快速地將字符串的內容與輸出的換行符分開,但此方法也會起作用,但請注意雙引號。 'my $ str = join「\ n」,@array;' – Structure 2010-09-30 05:54:23

1

@arr = ("1","2","3") ; 
my $arr = "@arr" ; 
print "$arr"; 
0

實際上,你可以用一個標量變量作爲文件句柄:

my $bigbuffer; 
my $f; 
open $f, ">", \$bigbuffer; # opens $f for writing into the variable $bigbuffer 
# do whatever prints fwrites etc you want here 
+1

您似乎完全誤解了這個問題。 – 2010-01-25 16:39:38

5

您還可以對數組的引用:

my @array = 'a'..'z'; 

my $scalar = \@array; 

foo($scalar); 

sub foo { 
    my $array_ref = shift; 

    for my $f (@$array_ref) { 

     do_something($f); 

    } 
} 

哪種方法你拿真取決於你想要完成的事情。

相關問題