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' 等...); (我的 $export = $doc) =~ s{.([^.]+)$}{'.'.($ext{$1}||$1})}例如;

于 2010-06-04T03:34:07.900 回答