1
後
は、正規表現に一致し、配列に値を格納するためのスクリプトである:Perlを使用して複数の正規表現を1つの配列要素に結合するにはどうすればよいですか?
sub b1 {
# print $_;
my @file = @_;
my @value;
my $find = qr/(\s+)([0-9]+)\s([A-Z])\s[0-1].[0-9]+\s->\s([A-Z])\s/;
foreach my $file(@file){
push (@value, $file=~ /$find/) ;
print "\n";
}
return @value;
}
my @array_b1 = b1(@body);
print "@array_b1 \n";
__DATA__
28 C 0.510 -> L 0.923
30 S 0.638 -> A 0.527
31 A 0.496 -> P 0.952
__OUTPUT__
28 C L 30 S A 31 A P
正規表現の値を取り込み、それをアレイに格納する、上記アレイすなわちアレイ内の連続した要素のスクリプト格納値は要素を有するが:
@array[1]=28
@array[2]=C
@array[3]=L
@array[4]=30.
代わりに、正規表現で取り込まれた値を同じ配列要素に格納します。それは次のとおりです。
@array[1]=28CL
@array[2]=30SA
それを行うための最善の方法は何ですか?
Perl5では、配列要素は@:$ array [1]、$ array [2]などではなく$を使用します。@array [1]どこでも@array [1]があなたに警告を出す理由です - あなたは警告をオンにしています、はい?) – ysth
あなたは本を購入することを検討しましたか? http://books.perl.org/category/7 –
@ sinan unur:私はすでに本を持っています。提案に感謝します。なぜ正規表現が情報にマッチしキャプチャしていて、それらを連続した要素として配置しているのか分かりますか? – shubster