-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 に答える