私は Perl の初心者で、複数の .pm ファイルを 1 つのスクリプトに結合しようとしています。ほとんどのモジュールは正常にコピーされますが、ファイルの終わりに達したときにエラーが発生するモジュールもありますが、スクリプトは印刷を続けます。コードの例を次に示します。
$copy_line = 0;
sysopen(FILE, $file_path, O_WRONLY | O_CREAT, 0711);
sysopen(MODULE, $module_path, O_RDONLY | O_EXCL);
while(<MODULE>)
{
my $line = $_;
if(($line ne "# START\n") and ($copy_line eq 0))
{
}
else
{
print FILE "$line";
$copy_line = 1;
}
}
close FILE;
close MODULE;
各モジュールには開始タグと終了タグがあり、use ステートメントはコピーしないので、いつコピーを停止するかがわかります。モジュールの例は、
#!/usr/bin/perl
# START
some code to copy over
some more code to copy
even more code to copy
# END
一部のファイルでは、終了タグが表示され、その後にモジュールからのコードが繰り返されます。出力は次のようになります
# START
some code to copy over
some more code to copy
even more code to copy
# END
code to copy
even more code to copy
# END
何が原因でしょうか? ありがとう、
-さびた