我对perl很新,只是发现了一些非常意外的行为.
我使用move from File::Copy来重命名文件夹.它按预期工作,但是当我看到之后的返回值变量时$!,它会显示错误.
我使用的相关代码:
$helpr =~ s/\./ /g;
move($file,$helpr);
print $!;
Run Code Online (Sandbox Code Playgroud)
输出:
[j@box test]$ ls
my.test.dir
[j@box test]$ fileRenamer.pl
No such file or directory
[j@box test]$ ls
my test dir
Run Code Online (Sandbox Code Playgroud)
无论如何,当作业完成时,为什么会出现错误代码?我错过了什么?
感谢大家!
正如mpapec所说,除非move返回false值,否则不应使用错误消息,例如... or die $!.但是,至于为什么会发生这种情况:
我以前见过这个,看起来好像File::Copy是$!虚假的.我查看了源代码,发现了这一行:
($tosz1,$tomt1) = (stat($to))[7,9];
Run Code Online (Sandbox Code Playgroud)
$to文件移动到的文件名在哪里.此检查用于处理覆盖文件的异常,如果文件不存在,$!则自然会进行设置.我会将此归类为各种错误.
| 归档时间: |
|
| 查看次数: |
1508 次 |
| 最近记录: |