1

私はperlであまり練習していませんが、関数によって返される配列のいくつかの要素を1行で取得できることを昔から覚えています。これにより、最初に一時的な配列に何かを保存しないように時間とコードを節約できますいくつかの要素を使用するだけです。

例えば

($a,$b,$c)=split(/:/, "stack:over:flow"); 
print "$b $c" # prints "over flow"

あるいは

($a)=(split(/:/, "stack:over:flow"))[2];
print $a # prints "flow"

の出力の 2 番目と 3 番目の要素 (「over」と「flow」) だけに関心があるとしますsplit。次のようなことができますか

($a,$b)=(split(/:/, "stack:over:flow"))[2,3];
4

3 に答える 3

2

undef興味のないものに割り当てることもできます。

my (undef, $over, $flow) = split /:/, 'stack:over:flow';
于 2013-11-07T09:29:02.880 に答える
0

はい、配列をインデックスでスライスする方法があるので、それを取得できます。ここに実行できるスクリプトをリストします

  1 #!/usr/bin/perl
  2 use strict;
  3 use warnings;
  4
  5 my $text = "first:second:third";
  6 my @array = split(':', $text);
  7 my @new_array = @array[1, 2];
  8 print "@new_array\n";
于 2013-11-07T09:29:05.820 に答える