0

私は 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

何が原因でしょうか? ありがとう、

-さびた

4

2 に答える 2

0

内容を変更せずにファイルをコピーする場合は、File::Copy http://perldoc.perl.org/File/Copy.htmlを調べる必要があります。

File::Copy標準モジュールであり、Perl とともにインストールされます。標準モジュールのリストについては、perldoc perlmodlib http://perldoc.perl.org/perlmodlib.html#Standard-Modulesを参照してください。

于 2013-06-27T18:14:18.730 に答える