質問

質問者:cluewm plファイルの中で他のplファイルを実行
困り度:
  • 暇なときにでも
A.plファイルとそれに付随するpmファイルがあります。

別のB.plでA.plに値を渡しながらループさせてA.plを実行し得られた値をB.plに返すことがしたいのですが、

B.plで

ループ始点
require('A.pl');
ループ終点

だと一回きりの実行結果しか得られず。

#`perl A.pl @AAA`;
だとreturnできずエラー

となってしまいます。

何か良い方法は無いでしょうか。

よろしくお願いいたします。
質問投稿日時:05/07/27 19:36
質問番号:1542294
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:zebedeer こんな感じでは?

$ 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
種類:回答
どんな人:一般人
自信:参考意見
回答日時:05/07/28 00:59
回答番号:No.2
この回答へのお礼delete $INC{'a.pl'};

ですね。

解決できました。
ありがとうございました。

回答

良回答10pt

回答者:omni2 ###########################
#A.plの内容

#!/Perl/bin/perl

require "B.pl";
foreach(0..10){&test();}

###########################
###########################
#B.plの内容
sub test{
print "Hello\n";
}
1;

##########################
こうしてみればどうでしょう?
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:05/07/27 20:02
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示良回答のみ表示