次のコードから期待される結果が得られません。
#!/bash/perl
use strict;
use warnings;
my @file;
my $file2;
open (IN, "+</home/opmeitle/labs-perl/numbers");
@file = <IN>;
seek IN,0,0;
my %change = ( 80.928 => "85.950", 320.000 => "380.500");
my $changekey = join "|", keys %change;
foreach $file2 (@file){
$file2 =~ s/($changekey)/$change{$1}/g;
print IN $file2;}
close IN;
これはの内容です/home/opmeitle/labs-perl/numbers
:
80.928
320.000
出力は次のとおりです。
85.950
380.500.000
これが私が望む結果です:
85.950
380.500
私はあなたの答えに感謝します。
ルイス。
しかし、この例を見ると、コードmy%change =(nombre => "name"、mi => "my");の "Hola、mi nombre es Luis y vivoenArgentina"のファイル番号80.928と320.000が変更されています。これは結果「ホラ、私の名前はルイス・イ・ヴィヴォ・エン・アルゼンチン」であり、最後に一言で言えばもっと!なぜなら?