私は現在、バッククォートされたシェルコマンドからの出力をキャプチャすることに関して非常に単純な問題を抱えています。問題はかなり単純なものであるとお詫び申し上げます。
連続した重複要素が含まれていることがわかっているソート済み配列(@valid_runs)があります。この配列をuniqにエコーするためにバッククォートを使用したいと思います。STDOUTを配列でキャプチャしたい。私はこのようにそうしようとします。
@unique_valids = `echo '@valid_runs' | uniq`;
print @unique_valids;
このprintステートメントは何も生成しません。そのことについては、これもしません。
@unique_valids = `echo '@valid_runs'`;
print @unique_valids;
uniqとechoの使い方を知っています。これは私にはかなり奇妙に思えます。これは、これらのコマンドを適切に使用することよりも、perl配列に関係していると思います。私は他の場所を少し検索したので、解決策が些細なことに思えるかもしれないという理由だけで、私に反対票を投じないでください。お時間をいただき、ありがとうございました。
解決策に関する注記:TLPの解決策は、uniq問題を処理する限り最も簡単です。すべての回答がこの問題をシステムコールしないことを示唆していたので、私はかなり柔軟です。Perlのuniq関数がUnixのuniqと同じである場合、配列はソートされたままである必要があります。
ソートされた結果を気にしない場合は、JohnCorbettのソリューションが適切に機能します。