パイプ実行用にいくつかのPerlスクリプトを変更し、指定された入力パラメーターのセットでそれらを実行するラッパースクリプトを作成する必要があります。その前に、最初のプログラムで何が起こっているのかを理解する必要があります。このコードを解読するのに助けが必要です:
# declare and initialise an empty hash
my %to_keep= ();
# an array
@line = ('some\one', 'two', 'three', 'four');
# trim the identifier
$line[0]=~s/\/[1]$//;
# store this into an array
@{$to_keep{$line[0]}{'1'}}=($line[1],$line[2]);
print @;
私はperl置換関数s///に精通しています。それは行きます:
s/text-regex_to_be_replaced/replacement/modifier.
ただし、上記のコードが何をしているのかよくわかりません。私が正しく理解していれば、文字列の終わり('$ /'で示される)まで、'\'のすべての出現箇所をline[1]に置き換えます。これは正しいです?
私が確信していない他の部分は、「store」コメントの下のコードです。配列のハッシュを配列に格納していると思います。誰かがコードがどのように機能し、変数が与えられたときに何を出力するかを説明できますか?また、配列に格納しているデータを取得するにはどうすればよいですか?
ボーナスの質問:パイプ実行用のperlスクリプトの変更がどのように機能するかを誰かが説明できますか?
ありがとう