在Perl中转义分号语法

时间:2018-11-29 22:14:31

标签: perl

如何通过仅在其后添加字符来在perl中转义分号(即语法)?

说我有一行代码:

print "foo";

我想在其后添加以下代码,以便可以重复5次:

print "foo"; x 5;

无论如何,我是否可以转义/忽略分号(而无需更改原始代码),因此可以将其解释为:

print "foo" x 5;

编辑:这似乎太麻烦了,最好只是将行嵌套在for循环中。

3 个答案:

答案 0 :(得分:3)

好像您只想打印"foo" 5次?

如果是,则:

use strict;
use warnings;
print "foo" for (1..5);

收益:

foofoofoofoofoo

答案 1 :(得分:1)

这里是使用源过滤器的示例。 实际上,它会在执行之前更改代码,因此您不必自己执行。

echo package FiveTimes; use Filter::Simple sub{s/;/x5;/g};1; > FiveTimes.pm

perl -MFiveTimes -e"print qq/foo/;"
foofoofoofoofoo

答案 2 :(得分:0)

 print "foo"; BEGIN{tie *STDOUT,'FiveTimer';sub FiveTimer::TIEHANDLE{bless{},'FiveTimer'}sub FiveTimer::PRINT{CORE::print STDERR $_[1] x 5}}

或更可读

 print "foo"; BEGIN{ tie *STDOUT,'FiveTimer' }
 sub FiveTimer::TIEHANDLE{bless{},'FiveTimer'}
 sub FiveTimer::PRINT{CORE::print STDERR $_[1] x 5}}