外部コマンドを実行してPerl6でその出力をキャプチャする方法は?

StackOverflow https://stackoverflow.com/questions/4643753

  •  09-10-2019
  •  | 
  •  

質問

外部コマンドを実行してPerl6でその出力をキャプチャするにはどうすればよいですか?

Perl5スタイルのバックチックは機能しないようです:

> my $results = `ls`;
Confused at line 1, near "my $results"

概要16 文書 走る 方法ですが、これにより、stdoutからの出力ではなく、出口ステータスが返されます。

Rakudo実装(Rakudo-Star-2010.12)を使用しています。

役に立ちましたか?

解決

代わりにQQXまたはQXを使用します。

> my $results = qqx{ls};

ラリーウォール 答えた メーリングリストの同等の質問:

[...]

: :バックティックまたはQX {}に取って代わるものは何ですか?

qqx []またはqq:x []は正確な同等です。 qx []またはq:x []は、単一の探索セマンティクスで同じです。 (ユーザー定義のものについては、そしてバックテックを多くのフォントで単一の引用から視覚的に伝えるのが難しいため、その目的のためのバックテックはおそらくありません。)

他のヒント

これは(シェルに触れることなく)安全に実行することもできます run() とともに out パラメーター:

my $proc = run 'ls', q!/tmp/"This" is an ugly name, isn't it?/!, :out;
my $output = $proc.out.slurp-rest;

で詳細を利用できます Proc クラス.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top