清理Perl代码:my $ export = $ doc; $ export = ~s:\。odt:\。pdf:;

时间:2010-06-02 01:22:31

标签: regex perl code-cleanup

Perl代码片段:

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

这怎么写得更干净?不仅仅是其他900种写作方式,TMTOWTDI

3 个答案:

答案 0 :(得分:10)

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

UPDATE:该解决方案无法编译(请注意自我:在SO上发布之前进行测试)。相反,你可以说

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

答案 1 :(得分:7)

我选择[.]来匹配文字句点:

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

请注意,只有s///调用的前半部分是正则表达式。替换是普通字符串,不需要转义句点。

您可能希望使用Path::Class将文件表示为对象而不是字符串。

答案 2 :(得分:0)

my%ext =('odt'=>'pdf'等等...); (我的$ export = $ doc)=〜s {。([^。] +)$} {'。'。($ ext {$ 1} || $ 1})}例如;