gpt4 book ai didi

perl - 如何正确处理 File::Slurp read_file 上的错误?

转载 作者:行者123 更新时间:2023-12-03 09:10:12 24 4
gpt4 key购买 nike

我正在使用 File::Slurp read_filewrite_file更新文件内容的功能。

现在我专注于向它添加错误处理。为此,我尝试对实际不存在的文件执行以下方法。

1) read_file($file) or die("file read failed\n");不工作。只是抛出状态:500 软件错误。

2) try{ my @lines = read_file($file); } catch{ print "file cannot read";};不工作。

3) err_mode 就像 http://search.cpan.org/~drolsky/File-Slurp-9999.13/lib/File/Slurp.pm#err_mode .不工作。

使用 Perl 是不是坏主意 File::Slurp ?

最佳答案

该模块的文档似乎已过时并且与行为不符(编辑:它已在 CPAN 上修复,只是 Fedora 附带的版本仍然存在不一致)。如 err_mode 中所述, 错误的默认行为是调用 croak() , 不返回 undefread_file() 所述.所以是的,你要么必须使用 err_mode => 'quiet'获得 return-undef 行为,或使用 try/catch block 。正如你所说,这些都不起作用,到底发生了什么?这两个对我来说都很好:
$ perl -MFile::Slurp -MTry::Tiny -e'try { $s=read_file("foo") } catch { die "bummer" };'
bummer at -e line 1.
$ perl -MFile::Slurp -e'$s=read_file("foo", err_mode => "quiet") or die "bummer";'
bummer at -e line 1.

关于perl - 如何正确处理 File::Slurp read_file 上的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33273225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com