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

CW *_* II 1 regex perl code-cleanup

Perl代码片段:

my $export = $doc;
$export =~ s:\.odt:\.pdf:;
Run Code Online (Sandbox Code Playgroud)

怎么会写得更干净?不仅仅是其他900种编写方式TMTOWTDI.

mob*_*mob 10

 

my ($export = $doc) =~ s{\.odt}{\.pdf};
Run Code Online (Sandbox Code Playgroud)

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

(my $export = $doc) =~ s{\.odt}{\.pdf};
Run Code Online (Sandbox Code Playgroud)


jro*_*way 7

我去[.]匹配一个字面的时期:

$export ~= s{[.]odt$}{.pdf};
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我认为你的意思是\ z,而不是$.$很少是可取的. (2认同)