3

Perl スクリプトからシェル コマンドを呼び出したい。コマンドへの引数は、Perl 配列に存在します。

これを行う最も簡単な方法は何ですか?

返信ありがとう

4

2 に答える 2

4

おそらくを呼び出す必要がありsystemます。パラメータをリストとして渡すのが最も効率的です。これにより、シェルを使用してコマンドラインを解析する必要がなくなります。のような呼び出し

my $status = system 'command', @arguments;

あなたが必要なことをする必要があります。

于 2012-04-30T18:42:33.333 に答える
1

通常、プログラムを起動するためにほとんどの関数で受け入れられる 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);
于 2012-04-30T18:48:58.917 に答える