我讀從文件的字符串:Perl正則表達式問題!
2343,0,1,0 ... 500次...... 3
以上是$_
一個例子,當它從讀一份文件。它是任何數目,接着500逗號分隔的0/1的然後我使用chop
從字符串的末尾得到的數量3的數量3.
while(<FILE>){
my $string = $_;
chomp($string);
my $a = chop($string);
my $found;
if($string=~m/^[0-9]*\,((0,|1,){$i})/){
$found = $&.$a;
print OTH $found,"\n";
}
}
。然後匹配第一個數字,然後出現$i
,出現0或1.我遇到的問題是chop
由於某種原因無法處理字符串。在if
聲明中,當我嘗試連接匹配和切碎的數字時,所有返回的內容都是$&
的內容。
我也嘗試使用my $a = substr $a,-1,1;
獲得數字3,這也沒有奏效。
奇怪的是,這段代碼在Windows上的Eclipse中工作,當我將它放到Linux服務器上時,它不起作用。任何人都可以發現我正在犯的愚蠢錯誤嗎?
變量$ a和$ b在排序例程使用Perl的特殊變量;作爲一項規則,他們不應該在此之外使用。 – 2011-03-24 14:56:42
不要使用[chop](http://perldoc.perl.org/functions/chop.html「perldoc -f chop」),它不是爲了這個。 – 2011-03-24 15:03:45
請勿使用['$&'](http://perldoc.perl.org/perlvar.html#%24%26「perldoc -v $&」)。在程序的任何地方**使用這個變量**會對**所有**正則表達式匹配造成相當大的性能損失。 – 2011-03-24 15:36:58