私はまだPerlの初心者です。いくつかの配列を取り、ループを使用せずに別の配列に入れようとしています。
my @array1 = ("abc", "def", "ghi", "jkl", "mno", "pqr");
my @array2=$array1[2 .. 4];
しかし、それは機能しません。
@array2 の結果が「def ghi jkl」であることを望みます。
@
スカラー マーカー ( $
)の代わりに配列スライスを使用する必要があります。
my @array1 = ("abc", "def", "ghi", "jkl", "mno", "pqr");
my @array2=@array1[2 .. 4]; # ====> @array1 not $array1
print join(",", @array2), "\n";
リスト スライスの構文は@array[EXPR]
(not $array[EXPR]
) であるため、
my @array2 = @array1[2..4];
上記には 3 つのループがあることに注意してください。ループを避けたい場合は、使用する必要があります
my @array2;
$array2[0] = $array1[2];
$array2[1] = $array1[3];
$array2[2] = $array1[4];
ただし、リクエストにもかかわらず、実際にループを避けたかったとは思えません。
ステートメントを以下に変更します。
@array2=@array1[2..4];