我每天在几个工作中运行以下代码片段:
system("cp $keyFile $destinationFile");
system("chown $userID $destinationFile");
system("chmod 400 $destinationFile");
上面代码的问题是,有时,非常罕见,至少上述操作之一没有成功完成,我的工作失败了。虽然如果上述操作之一失败,作业失败是可以的,但我仍然想避免简单系统命令之一失败。
所以我有以下选择:
- 使用 Perl 子例程
File::Copy::copy
,chmod
,chown
代替系统命令。 - 检查命令的返回值
system()
。我已经这样做了,但没有解释为什么它可能会失败。
使用 Perl 子例程而不是系统命令更好/更安全。我的作业将始终在RHEL5机器上运行 [从不是 Windows]。
还有什么我可以在这里做的。我怎样才能收集更多关于出了什么问题的信息?
更新:文件名或文件路径永远不会包含空格或奇怪的字符。他们将来自集合 [a-zA-Z]。