2017-06-02 53 views
0

我如何用Perl做兩個替換?perl中的幾個替換

我使用下面的代碼。我用兩次s到更換...我想所有在更短的行...

 (my $newName = $grib) =~ s/:00:00.grb//; 
     rename $grib, $newName; 

     (my $newName1 = $newName) =~ s/d01/d02/g; 
     rename $newName, $newName1; 

回答

7

按照要求:

(my $newName = $grib) =~ s/:00:00.grb//; rename $grib, $newName; (my $newName1 = $newName) =~ s/d01/d02/g; rename $newName, $newName1; 

但是,這是愚蠢的。也沒有理由把所有東西都放在一條線上。相反,努力生產質量可讀的代碼。對於初學者來說,一旦做了就停止重命名!

my $newName = $grib; 
$newName =~ s/:00:00.grb//; 
$newName =~ s/d01/d02/g; 
rename($grib, $newName) 
    or die("Can't rename \"$grib\" to \"$newName\": $!\n"); 

隨着5.14+,這可以降低到以下內容:

my $newName = $grib =~ s/:00:00.grb//r =~ s/d01/d02/gr; 
rename($grib, $newName) 
    or die("Can't rename \"$grib\" to \"$newName\": $!\n");