检查文件是否存在时,FILE会引发异常

时间:2018-10-09 03:32:05

标签: perl

我在理解以下代码为何引发错误时遇到问题。

我有一个简单的脚本:

do_test.pl

use strict;
use warnings;

do 'test.pl';
warn 'error 1: ' . $@ if $@;
warn 'error 2: ' . $! if $!;

test.pl

use Path::Tiny;

path('anything')->exists;

我还不清楚为什么test.pl运行得很好并且do_test.pl会引发错误:error 2: No such file or directory

这是我的代码的简化版本。

1 个答案:

答案 0 :(得分:1)

$!仅在发生错误时才有意义,因此您的代码声称没有发生错误时就发生了错误。

更改

use Path::Tiny;
path('anything')->exists;

use Path::Tiny;
path('anything')->exists;
1;

并更改

do 'test.pl';
warn 'error 1: ' . $@ if $@;
warn 'error 2: ' . $! if $!;

do('test.pl')
   or die($@ || $!);