Perl スクリプトからシェル コマンドを呼び出したい。コマンドへの引数は、Perl 配列に存在します。
これを行う最も簡単な方法は何ですか?
返信ありがとう
おそらくを呼び出す必要がありsystem
ます。パラメータをリストとして渡すのが最も効率的です。これにより、シェルを使用してコマンドラインを解析する必要がなくなります。のような呼び出し
my $status = system 'command', @arguments;
あなたが必要なことをする必要があります。
通常、プログラムを起動するためにほとんどの関数で受け入れられる 2 つの形式があります。
前者はより安全で、必要なリソースが少なくて済みます。
system($prog, @args); # @args > 0
system({ $prog } $prog, @args); # @args >= 0
ただし、シェルを使用する必要がある場合、またはシェル コマンドを提供する必要がある場合は、String::ShellQuote (UNIX システムの場合) またはWin32::ShellQuote (Win32 システムの場合) が役立ちます。
use String::ShellQuote qw( shell_quote );
my $shell_cmd = shell_quote($prog, @args);
system($shell_cmd);