Dav*_*d B 3 perl system execution
我想command
用perl 运行一些命令(例如)system()
.假设command
从shell运行如下:
command --arg1=arg1 --arg2=arg2 -arg3 -arg4
Run Code Online (Sandbox Code Playgroud)
如何使用这些参数system()
运行command
?
最佳实践:避免使用shell,使用自动错误处理 - IPC::System::Simple
.
require IPC::System::Simple;
use autodie qw(:all);
system qw(command --arg1=arg1 --arg2=arg2 -arg3 -arg4);
Run Code Online (Sandbox Code Playgroud)
use IPC::System::Simple qw(runx);
runx [0], qw(command --arg1=arg1 --arg2=arg2 -arg3 -arg4);
# ? list of allowed EXIT_VALs, see documentation
Run Code Online (Sandbox Code Playgroud)
编辑:接下来是咆哮.
eugene y的答案包括系统文档的链接.在那里,我们可以看到每次都需要包含的一段代码,以便system
正确完成.eugene y的答案显示了其中的一部分.
每当我们处于这种情况时,我们就会在模块中捆绑重复的代码.我将正确的简洁异常处理与之相提并论Try::Tiny
,但IPC::System::Simple
正如system
所做的那样,没有看到社区的这种快速采用.似乎需要更频繁地重复.
所以,使用autodie
!用IPC::System::Simple
!保存自己的单调乏味,请放心使用经过测试的代码.
my @args = qw(command --arg1=arg1 --arg2=arg2 -arg3 -arg4);
system(@args) == 0 or die "system @args failed: $?";
Run Code Online (Sandbox Code Playgroud)
更多信息是perldoc.
归档时间: |
|
查看次数: |
4431 次 |
最近记录: |