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