将变量放入数组

时间:2012-09-13 13:47:47

标签: perl cgi

如何将变量放入数组中这是我尝试过的运气。

    #!/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";

3 个答案:

答案 0 :(得分:2)

我认为你的意思是如何将字符串中的空格分隔值放入数组形式?

my @Array = split ' ', $State;

假设您无法直接输入值,当然,就像这样:

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

答案 1 :(得分:2)

qw是一个引用单词的特殊运算符,它不进行插值。如果您希望数组包含单词,可以使用split

my @Array = split / /, $State;

答案 2 :(得分: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