如何通过仅在其后添加字符来在perl中转义分号(即语法)?
说我有一行代码:
print "foo";
我想在其后添加以下代码,以便可以重复5次:
print "foo"; x 5;
无论如何,我是否可以转义/忽略分号(而无需更改原始代码),因此可以将其解释为:
print "foo" x 5;
编辑:这似乎太麻烦了,最好只是将行嵌套在for循环中。
答案 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}}