md1*_*980 -2 error-handling perl die
我有一个类似下面的Perl声明
seek DCMFReport.txt, $offset, 0 or die "Report seek error, offset:$offset - $!";
Run Code Online (Sandbox Code Playgroud)
当它到达上面的行时,我得到一个"参数错误",但我没有看到打印出来的文件中的文字.我希望看到"报告寻找错误......"打印出来.这是否意味着即使语句引发错误,代码也没有进入die部分?
因为seek
需要open
首先需要文件句柄.文件名与文件句柄不同.
use strict;
use warnings;
my $offset = 1;
open my $fh, '<', 'DCMFReport.txt' or die $!;
seek $fh, $offset, 0 or die "Report seek error, offset:$offset - $!";
Run Code Online (Sandbox Code Playgroud)
or die
如果您使用字符串作为第一个参数,它将为您提供错误消息,因为seek
操作失败,因为该值不是文件句柄.这是传递不存在的东西的其他东西.
文件说:
FILEHANDLE可以是一个表达式,其值给出文件句柄的名称.
字符串是一个表达式,因此它尝试对具有该名称的文件句柄进行操作.