Perl不';不要转到错误部分

Perl不';不要转到错误部分,perl,error-handling,die,Perl,Error Handling,Die,我有一个类似下面的Perl语句 seek DCMFReport.txt, $offset, 0 or die "Report seek error, offset:$offset - $!"; 当它到达上面一行时,我得到一个“参数错误”,但我没有看到打印出来的模具中的文本。我希望看到“报告查找错误…”打印出来。这是否意味着即使语句抛出错误,代码也没有转到die部分?,因为需要一个文件句柄,您需要先处理该文件。文件名与文件句柄不同 use strict; use warnings; my $o

我有一个类似下面的Perl语句

seek DCMFReport.txt, $offset, 0 or die "Report seek error, offset:$offset - $!";
当它到达上面一行时,我得到一个“参数错误”,但我没有看到打印出来的模具中的文本。我希望看到“报告查找错误…”打印出来。这是否意味着即使语句抛出错误,代码也没有转到die部分?

,因为需要一个文件句柄,您需要先处理该文件。文件名与文件句柄不同

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 - $!";
使用严格;
使用警告;
我的$offset=1;

打开my$fh,'按照代码的方式,它将尝试调用函数
DCMFReport()
和函数
txt()
,并将两者的返回值串联起来,然后将该值用作
seek
的第一个参数。始终
使用严格的
使用警告
!成功了。如果我可以问的话,引号给这行增加了什么。谢谢。我确实使用了严格的警告,这不应该起作用
seek
需要一个文件句柄作为它的第一个参数。这确实有效,现在骰子正在执行,我看到“Report seek…”@st这肯定比它好;-)但没用,我试着打开我的$file,'但没用,我试着打开我的$file,'或者更确切地说是你提到的文件句柄周围的引号。这适用于查找“$file”、$offset、0或die“报告……”即使我将openmyfile作为前面的语句,打开该文件,然后将该FH传递给您提到的下一个seek命令,但它仅在我在FH周围加上引号时才起作用。我很困惑。@md1980我在这里展示了编译的代码,它将捕获运行时错误。通常,人们希望代码正常工作,并且只在出现运行时错误时捕获它们。如果您确实想要强制执行运行时错误,则仍然需要工作代码。因为你的代码根本不起作用,我修正了。现在,你为什么希望操作失败?是否要测试
或模具
零件是否正常工作?你在写单元测试吗?请详细说明你需要什么。