-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";
4

3 回答 3

2

我认为您的意思是如何将字符串中的这些空格分隔值转换为数组形式?

my @Array = split ' ', $State;

那是假设你不能直接把值放进去,当然,像这样:

my @Array = qw(Alabama 205 251 256 334 659 938);
于 2012-09-13T13:53:40.273 回答
2

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

my @Array = split / /, $State;
于 2012-09-13T13:53:52.910 回答
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
于 2012-09-13T13:54:19.540 回答