0
我有這樣的代碼跳過與#
處理文件。怎麼了?
while (defined (my $line = <FILE>)) {
if ($line =~ /^#/) { next; }
$line =~ /^(\w+);(\w+);.*$/;
$user_map{$2} = $1;
}
開始行,我會覺得這個代碼做了同樣的
while (defined (my $line = <FILE>)) {
unless ($line =~ /^#/) {
$line =~ /^(\w+);(\w+);.*$/;
$user_map{$2} = $1;
}
}
但事實並非如此。
最後一個代碼有什麼問題?
更新:用實際代碼替代# do stuff
。
詳細評論會發生什麼以及兩個版本之間的差異。至於* I *可以看到代碼應該實際執行相同的操作。 – 2011-04-11 12:57:48
我沒有看到任何會導致差異的東西。你如何看待他們的行爲不同?你能提供一個你得到不同結果的輸入例子嗎? – 2011-04-11 13:41:17
你的模式的「。* $」部分沒有做任何有用的事情,所以它不應該在那裏:-) – tadmc 2011-04-11 16:13:09