2012-09-13 93 views
-1

如何將一個變量放入數組中這裏是我嘗試過的時候沒有運氣。將變量放入數組

#!/usr/bin/perl 

    use CGI qw(:standard); 
    use CGI::Carp qw(warningsToBrowser fatalsToBrowser); 
    use strict; 

    my $State = "Alabama 205 251 256 334 659 938"; 

    my @Array = qw($State); 

    print "@Array"; 
+1

你應該總是'使用warnings'。 – simbabque

+2

你應該澄清你之後的結果,因爲對於「將變量放入數組」的含義有很多解釋。 – TLP

回答

2

qw是一個特殊的運算符引用的話,它不進行內插。如果你想在數組包含的話,你可以使用split

my @Array = split//, $State; 
+0

謝謝choroba! – Blnukem

+0

'split'''(奇蹟般地)比'split split//' – ysth

2

我認爲你的意思是你怎麼能把這些空間分隔值的字符串轉換爲數組形式?

my @Array = split ' ', $State; 

這是假設你不能把這些值直接,當然,像這樣:

my @Array = qw(Alabama 205 251 256 334 659 938); 
2

你需要或者push它,或只是簡單地把它在列表中。 qw字面上將字符串「$ State」,並且不使用該變量的值。

my @arr = ($State); 
my @arr2; 
push @arr2, $State, $State; 

現在,您可以:

use Data::Dumper; 
print Dumper \@arr, \@arr2; 

$VAR1 = [ "Alabama 205 251 256 334 659 938" ]; 
$VAR2 = [ "Alabama 205 251 256 334 659 938", "Alabama 205 251 256 334 659 938" ]; 

注意push在數組的末尾推動價值。

my @array; 
for my $n (0 .. 5) { 
    push @array, $n; 
} 
print Dumper \@array; 

$VAR1 = [0, 1, 2, 3, 4, 5]; 

爲了得到他們,使用標符號,開始你的索引從0計數:

use feature qw(say); 
say $array[0]; 
say $array[5]; 

0 
5