按照要求:
(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");