Perlコードフラグメント:
my $export = $doc;
$export =~ s:\.odt:\.pdf:;
これはどのようにすっきりと書かれるでしょうか?それを書くための他の900の方法は何ですか、TMTOWTDI。
Perlコードフラグメント:
my $export = $doc;
$export =~ s:\.odt:\.pdf:;
これはどのようにすっきりと書かれるでしょうか?それを書くための他の900の方法は何ですか、TMTOWTDI。
my ($export = $doc) =~ s{\.odt}{\.pdf};
更新:そのソリューションはコンパイルされません(自己に注意してください:SOに投稿する前にテストしてください)。代わりにあなたは言うことができます
(my $export = $doc) =~ s{\.odt}{\.pdf};
[.]
私は文字通りのピリオドに一致するために行きます:
$export ~= s{[.]odt$}{.pdf};
s///
呼び出しの前半のみが正規表現であることに注意してください。置換は通常の文字列であり、ピリオドをエスケープする必要はありません。
ただし、 Path :: Classを使用して、ファイルを文字列ではなくオブジェクトとして表現したい場合があります。
私の%ext =('odt' =>'pdf'など...); (my $ export = $ doc)=〜s {。([^。] +)$} {'。'。($ ext {$ 1} || $ 1})}例;