1

Perlコードフラグメント:

my $export = $doc;
$export =~ s:\.odt:\.pdf:;

これはどのようにすっきりと書かれるでしょうか?それを書くための他の900の方法は何ですか、TMTOWTDI

4

3 に答える 3

10

 

my ($export = $doc) =~ s{\.odt}{\.pdf};

更新:そのソリューションはコンパイルされません(自己に注意してください:SOに投稿する前にテストしてください)。代わりにあなたは言うことができます

(my $export = $doc) =~ s{\.odt}{\.pdf};
于 2010-06-02T01:38:30.537 に答える
7

[.]私は文字通りのピリオドに一致するために行きます:

$export ~= s{[.]odt$}{.pdf};

s///呼び出しの前半のみが正規表現であることに注意してください。置換は通常の文字列であり、ピリオドをエスケープする必要はありません。

ただし、 Path :: Classを使用して、ファイルを文字列ではなくオブジェクトとして表現したい場合があります。

于 2010-06-02T01:56:48.210 に答える
0

私の%ext =('odt' =>'pdf'など...); (my $ export = $ doc)=〜s {。([^。] +)$} {'。'。($ ext {$ 1} || $ 1})}例;

于 2010-06-04T03:34:07.900 に答える