1

.urlを使用して拡張子付きのファイル名を抽出しようとしています$name =~ s/\.url$//;。ただし、一部の名前には、拡張子の直前に感嘆符が含まれています。たとえば、次のようになります。

"for example-this!.url" "and-something-else!.url"

これにより、perl はエラーを発生させ、実行を停止します:

bash: !.url": event not found

この問題を克服する方法はありますか? 以下は、私が使用している関連コードの一部を示しています。

foreach my $f (@ARGV) {
 my (undef, $dir, $name) = File::Spec->splitpath($f);
 $name =~ s/\.url$//;
4

2 に答える 2