Perl でファイル名から「.」を削除するにはどうすればいいですか?

Perl でファイル名から「.」を削除するにはどうすればいいですか?

/(\.[^.]+)$/たとえば、ファイルの拡張子を読み取るために Perl で を実行します。 を削除して出力が になるようにするにはText.txtどうすればよいでしょうか?.Texttxt

答え1

一致グループ/(…)/には以下が含まれます内部括弧の中にドットを入れたくない場合は、 括弧: /\.([^.]+)$/.

#!/usr/bin/env perl

use strict;
use warnings;

my $filename = 'Test.txt';
$filename =~ s/(.*)\.([^.]+)$/$1$2/;
#               ^^    ^^^^^
#               $1     $2
print "filename: '$filename'\n";

# prints "Testtxt"

関連情報