시작하기 전에 필자는 펄 전문가가 아님을 알려드립니다. 나는 나에게 할당 된 특정 작업 때문에 그냥 시작했다.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
나는이 코드가 PHP가 아니라 Perl이라고 생각합니다. – Palladium
내 잘못, 적절하게 변경 .. – Nani
질문이 명확하지 않습니다. 's/\. dat \ .gz $ /. trg /'와는 다른 무엇이 필요합니까? – Borodin