Perl响应0是否可能成功移动?

时间:2018-12-28 07:30:39

标签: perl copy

如果成功,perl class JobLog(db.Document): @classmethod def pre_delete(cls, sender, document, **kwargs): (pre delete operations) from mongoengine import signals signals.pre_delete.connect(JobLog.pre_delete, sender=JobLog) 模块中的每个函数应该返回1,如果失败,则返回0。 就我而言,我注意到(使用我拥有的所有日志)File::Copy即使操作成功(由于文件实际上已移动)也返回0,其值为$!为move

以前有没有人注意到这样的问题?

2 个答案:

答案 0 :(得分:2)

File::Copycopy

  

如果设置权限时发生错误,则cp将返回0,无论文件是否被成功复制。

虽然这是针对copy的,但move也可以复制文件然后删除(如果无法重命名)。

还有其他可能性,涉及其他进程干扰文件。

答案 1 :(得分:2)

如果move返回0,则尝试重命名文件失败,然后尝试复制失败,或者尝试在复制失败后取消链接原始文件。我看不到其他可能性,至少在File :: Copy 2.33版本中。

如果您需要更好的错误报告,则可能只想重命名,如果需要,可以复制并自行取消链接。

您正在使用哪个版本的File :: Copy?什么版本的perl?什么操作系统。