我正在將正則表達式捕獲的信息存儲到數組中。但由於某種原因,第一個值被存儲在數組的4個元素中。任何關於什麼是錯誤的建議以及如何將第一個值存儲在數組的第一個元素中。爲什麼捕獲的表達式的第一個值被存儲在Perl的第四個元素中?
下面是腳本:
#!/usr/bin/perl
use strict;
my @value;
my $find= qr/^\s+([0-9]+)\s+([A-Z])/;
open (FILE, "</usr/test")|| die "cant open file";
my @body=<FILE>;
foreach my $line (@body){
chomp $line;
push @value, join('', $line =~ /$find/);
}
print "$value[0]\n"; #does not print anything
print "$value[4]\n"; #prints first value i.e 1389E
exit;
DATA
1389 E not
188 S yes
24 D yes
456 K not
2 Q yes
@大衛:我誤[0]寫到@value。我使用$ value [0]打印數組的第一個值。並且,第一個元素沒有值打印,例如$ value [0] – shubster 2009-08-02 01:29:13