在用 Perl 编写代码时真的应该使用外部命令吗?我看到它的几个缺点。它不是系统独立的,而且还可能存在安全风险。你怎么认为?如果没有办法并且您必须使用 Perl 的 shell 命令,那么执行该特定命令(如检查 pid、uid 等)的最安全方法是什么?
最佳答案
这取决于在 Perl 中复制功能的难易程度。如果我需要在某些东西上运行 m4
宏处理器,我不会考虑尝试自己在 Perl 中复制该功能,因为 http://search.cpan.org/ 上没有模块。看起来很合适,看来其他人也同意我的看法。那么,在那种情况下,使用外部程序是明智的。另一方面,如果我需要读取目录的内容,则 readdir()
等加上 stat()
或 lstat() 的组合在 Perl 中使用
比使用 ls
的输出更明智。
如果您需要执行命令,请仔细考虑如何调用它们。特别是,您可能希望避免 shell 解释参数,因此使用 system
的数组形式(另请参阅 exec
)等,而不是命令加参数的单个字符串(这意味着 shell 用于处理命令行)。
关于perl - 在使用 Perl 编写代码时安全地执行系统命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13023594/