Perlで書かれたコードを別言語で書き直すことになったのですが、Perlには不慣れで、次のファイル操作に関する部分の挙動がわからなくて困っており、ご助力お願いします。
コマンドへパイプ出力用にオープンするという操作なのですが、
Perl
1$code = "git show"; 2$cmd .= "hogeA |"; 3$cmd = "hogehogeB -option"; 4 5open(WRITE,"|".$cmd); 6print WRITE $$code; 7close(WRITE);
といったイメージのスクリプトです。
これがshellで、$code | $cmd を実行することだとはわかるのですが、
上記のように$cmd側にもパイプが含まれていた場合は、単純に$code | hogeA | hogehogeBに相当すると思っていいのでしょうか?$code | hogehogeB | hogeA でしょうか?
それとも、$cmd内が先に処理されたところに$codeが出力されるようなことになる(というのは変だと思いますが...)のでしょうか?
この検証に有用なコマンドの組み合わせも教えていただきたいです
また、printの行で「$$code」と、プロセスIDの特殊変数が使われている?ようなのですが、どういう意味(このようなタイミングで使うこと)があるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/24 04:40 編集