最近,我在Perl中为cPanel插件编写了一些脚本,其中尽管大多数代码都在Perl中,但是还有很多system()命令,我用它直接执行shell命令.
我很确定我可以使用Perl模块代替.记住时间紧迫,我认为使用系统命令更容易(及时完成项目).在回顾展中,我认为这是一个糟糕的编程实践.
我的问题是,在使用Perl的模块和使用system()命令时,是否有任何权衡,内存或其他方面.例如,使用时会有什么不同:
my $directory = "temp";
mkdir $directory;
Run Code Online (Sandbox Code Playgroud)
和
system ("mkdir temp");
Run Code Online (Sandbox Code Playgroud)
另外,如果我要使用Perl模块,那么开始时不会涉及安装大量模块吗?
我试图从我的Perl程序中运行Bash命令.但是Perl似乎把我的Bash $ PWD环境变量混淆为Perl变量.
我怎么能把它作为一个字符串全部读出来?
这就是我想要运行的
my $path = /first/path;
`ln -s $path $PWD/second/path`
Run Code Online (Sandbox Code Playgroud)
那些反引号在Bash中运行第二行.使用System()会产生同样的问题.
有任何想法吗?