• ベストアンサー

plファイルの中で他のplファイルを実行

A.plファイルとそれに付随するpmファイルがあります。 別のB.plでA.plに値を渡しながらループさせてA.plを実行し得られた値をB.plに返すことがしたいのですが、 B.plで ループ始点 require('A.pl'); ループ終点 だと一回きりの実行結果しか得られず。 #`perl A.pl @AAA`; だとreturnできずエラー となってしまいます。 何か良い方法は無いでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zebedeer
  • ベストアンサー率66% (80/121)
回答No.2

こんな感じでは? $ head * ==> a.pl <== print @ARGV; 1; ==> tmp.pl <== $\ = "\n"; foreach (1..10) { require ('a.pl'); delete $INC{'a.pl'}; } $ perl tmp.pl value value value value value value value value value value value

cluewm
質問者

お礼

delete $INC{'a.pl'}; ですね。 解決できました。 ありがとうございました。

その他の回答 (1)

  • omni2
  • ベストアンサー率53% (33/62)
回答No.1

########################### #A.plの内容 #!/Perl/bin/perl require "B.pl"; foreach(0..10){&test();} ########################### ########################### #B.plの内容 sub test{ print "Hello\n"; } 1; ########################## こうしてみればどうでしょう?