Perlスクリプトで「do」を使用し、複数のサブルーチン定義を避ける方法は?
別の Perl スクリプトから Perl スクリプトを呼び出そうとしています。私がこれを達成している方法は次のとおりです。
local @ARGV = (
$arg1,
$arg2
);
do 'perl_script.pl';
「system()」を使用する代わりに「do」を使用している理由は、この古いコードベースでは、複数の Perl スクリプトを呼び出す必要があるためです (もちろん、すべてを Perl モジュールにリファクタリングできますが、そうではありません)この時点で価値があります)。
「system()」の代わりに「do」を使用すると、「-d」フラグを使用したデバッグが容易になり、不要なシステム コールを回避できます。私が直面している問題は、Perl スクリプトにはサブルーチンが定義されているため、同じ perl スクリプトを複数回呼び出すと「do」が失敗し、スクリプトを複数回呼び出すと「subroutine redefined」エラーが発生することです。
「do」または再定義されたサブルーチンを無視する方法以外に、これを行う別の方法はありますか?