さて、ファイル内の文字列の最初の出現、たとえば「犬」を削除し、最初の出現のみを削除したいと思います。したがって、ファイルが次のようになっている場合:
犬は幸せでした。
犬は走るのが好きだった。
出力は次のようになります
幸せでした。
犬は走るのが好きだった。
私は次のコードを持っています:
#!/usr/local/bin/perl
use warnings;
use strict;
my $file = $ARGV[0];
my $out = $ARGV[1];
open (IN, "<$file");
open (OUT, ">$out");
while(<IN>){
s/dog/ /;
print OUT $_;
}
close IN;
close OUT;
そしてそれは機能しますが、最初のインスタンスだけを置き換える代わりに、単語のすべてのインスタンスを置き換えます。すべてのインスタンスを置き換えるには、グローバル修飾子gを使用する必要があると思いましたか?検索している文字列のすべてのインスタンスが置き換えられるのはなぜですか?それはおそらく私が見ていないいくつかの単純なエラーです。