2012-09-13 67 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