gpt4 book ai didi

perl move 抛出错误,但确实 move 了文件

转载 作者:行者123 更新时间:2023-12-04 23:02:26 25 4
gpt4 key购买 nike

我对 perl 很陌生,刚刚发现了一些非常意外的行为。

我使用来自 File::Copy 的 move 重命名文件夹。它按预期工作,但是当我查看返回值变量 $! 时之后,它显示一个错误。

我使用的相关代码:

$helpr =~ s/\./ /g;

move($file,$helpr);
print $!;

输出:
[j@box test]$ ls
my.test.dir
[j@box test]$ fileRenamer.pl
No such file or directory
[j@box test]$ ls
my test dir

无论如何,当工作完成后,为什么我会收到错误代码?我错过了什么?

谢谢大家!

最佳答案

正如 mpapec 所说,除非 move,否则不应使用错误消息。返回一个假值,例如与 ... or die $! .但是,至于为什么会出现这种情况:

我以前见过这个,好像是File::Copy正在设置 $!虚假地。我查看了源代码,发现了这一行:

($tosz1,$tomt1) = (stat($to))[7,9];

哪里 $to是文件 move 到的文件名。这个检查是为了处理覆盖文件的异常,当然如果文件不存在, $!将被设置。我会将其归类为某种错误。

关于perl move 抛出错误,但确实 move 了文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19860612/

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