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