如果发生错误,如何继续解析下一个文件

时间:2013-12-31 10:54:32

标签: perl

某些文件在最后一个解析博客中有一些损坏的字符,如下所示:

10.        ╬ε°⌂    ╬ε°⌂  Ä»kε°⌂  ≡,0
   FROM: 10X£↨> ⌂  0£↨> ⌂ ╬ε°⌂   =╨ε°⌂  ¿9╨ε°⌂  ☺
 1483        ☺   0 47¿9╨ε°⌂  280 146 5078 7522 410 6042

所以我从Net :: IP出错,解析停止了。如果发生此错误,我该如何进入下一个文件?是否有一个选项,“或死”带我回到某个地方而不是结束?

foreach my $wd (@WITHDRAWALS) {

            my $prefix = new Net::IP ($val) or die (Net::IP::Error());


        }

1 个答案:

答案 0 :(得分:1)

die内置引发致命异常。如果您不想要此行为,请不要使用它。相反,您可以使用内置warn创建(非致命)警告,并转到循环的next次迭代,跳过循环体的其余部分:

...
my $prefix = Net::IP->new($val) or do {
  warn NET::IP::Error;
  next;
};
...

此处使用do { ... }将两个语句组合在一起。