Nálam semmi különbség a két megoldás futási ideje között.
Egyszerű megoldás:
#!/usr/bin/perl -pw
s/0:30/ERRExxx/;
s/0:40/EMERRExxx/;
s/0:50/AMARRAxxx/;
-------------------------
"Bonyolult" megoldás:
#!/usr/bin/perl -pw
BEGIN{
%csere = (
"0:30" => "ERRExxx",
"0:40" => "EMERRExxx",
"0:50" => "AMARRAxxx",
);
$regexp_string = join "|", sort keys %csere;
$regexp = qr/($regexp_string)/;
}
# ez fut le minden sorra
s/$regexp/$csere{$1}/;
-----------------
Az input file mérete ~242MB, 864000 sorral, melyben ~10000 helyettesítés történik összesen.
Perl verzio: 5.10.1
A futási idő mindkét esetben ~1.5sec.