perl中的几个替换

perl中的几个替换,perl,Perl,如何使用Perl进行两次替换 (my $newName = $grib) =~ s/:00:00.grb//; rename $grib, $newName; (my $newName1 = $newName) =~ s/d01/d02/g; rename $newName, $newName1; 我使用以下代码。我用两次s来代替…我希望所有的线都少一点 (my $newName = $grib) =~ s/:

如何使用Perl进行两次替换

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

        (my $newName1 = $newName)  =~ s/d01/d02/g;
        rename $newName, $newName1;
我使用以下代码。我用两次s来代替…我希望所有的线都少一点

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

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

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

        (my $newName1 = $newName)  =~ s/d01/d02/g;
        rename $newName, $newName1;
(my $newName = $grib) =~ s/:00:00.grb//; rename $grib, $newName; (my $newName1 = $newName)  =~ s/d01/d02/g; rename $newName, $newName1;
但那是愚蠢的。也没有理由把所有东西都塞进一行。相反,应该致力于生成高质量的可读代码。首先,停止重命名两次,而一次就可以了

        (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//;
        rename $grib, $newName;

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