質問: 画面に、「abc」と出力させたいのです。 perlからcshが実行されていないように思えるのですが、 perlのsystem関数の使い方が誤っているのでしょうか? それとも、classpath等の設定をしなければならないのでしょうか? ちなみにコマンドから、 # test_csh.sh abc と実行しますと、ファイルが出力され、かつ、sourceも実行されています。 perlから実行する方法を教えてください。 説明が不十分であれば、補足いたしますのでご指摘ください。 宜しくお願いします。
回答: ======================================== = perl ( test_perl.pl ) $data = "abc"; system("test_csh.sh $data"); # $ret = system(`test_csh.sh $data`); # だと、バッククオート` を使っているから # test_csh.sh $dataを実行したときの出力結果が # system関数の引数として使われます。 # ですから、ダブルクオート" を使いましょう。 # 以下、test.logの内容を出力 open testlog, "test.log" or die "test.log: $!\n"; print ; close testlog; ========================================= こんな感じでできるんじゃないでしょうか(未確認です)。