.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$//;