在我開始之前,我想讓你知道我不是Perl專家。我剛開始是因爲分配給我的一些特定任務。在Perl中提取和替換文件擴展名
此任務的要求是提取文件的擴展名(.dat
)並將其替換爲.trg
。問題是我們正在壓縮.dat
文件以製作$filename.dat.gz
,當我們提取擴展名並將其替換時,我們得到$filename.dat.trg
,而我們希望理想地想要的是$filename.trg
。對於代碼(請注意,這似乎是一個非常古老的'遺留'代碼,我不想修補它太多,因爲它是/由另一個人維護),這就是它放下
#prepare the trigger file
#get the extension
my @contains_extension = split (/\./ , $filename);
my $ext = $contains_extension[-1];
#replace with a ".trg" extension
my $remote_trgfile = $filename;
$remote_trgfile =~ s/$ext$/trg/;
my $trgfile = $out;
$trgfile =~ s/$ext$/trg/;
在上面的代碼後綴有.dat.gz
即記住$filename
,文件名是$filename.dat.gz
我將不勝感激,如果有人可以幫助我走出一個更簡單的方法來提取這兩種擴展( .dat
和.gz
)並用.trg
替換它
我相信這段代碼是Perl,而不是PHP。 – Palladium 2012-08-01 16:21:43
我的不好,適當地改變了它.. – Nani 2012-08-01 16:39:19
你的問題不清楚。你需要什麼不同於's \\。dat \ .gz $ /。trg /'? – Borodin 2012-08-01 17:18:30