qw{}
是一种编写列表的漂亮方法。是否有类似的内容可以插入单词,即扩展变量?perlop http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators似乎没有提到任何。
不,没有内置的,但我们很多人都自己编写。
也对于这两种ql()
需要行列表。我用deQ
for a q()
版本和deQQ
for a qq
与 Perl 的“hasta”运算符一起使用的版本:
sub dequeue($$) {
my($leader, $body) = @_;
$body =~ s/^\s*\Q$leader\E ?//gm;
return $body;
}
sub deQ($) {
my $text = $_[0];
return dequeue q<|Q|>, $text;
}
sub deQQ($) {
my $text = $_[0];
return dequeue qq<|QQ|>, $text;
}
这让我可以使用这样的东西:
sub compile($) {
my $CODE = shift();
my $wrap = deQQ<<"END_OF_COMPILATION";
|QQ|
|QQ| use warnings qw[FATAL all];
|QQ| no warnings "utf8";
|QQ|
|QQ| sub {
|QQ| my \$_ = shift;
|QQ| $CODE;
|QQ| return \$_;
|QQ| }
|QQ|
END_OF_COMPILATION
return eval $wrap;
}
or
my $sorter = new Unicode::Collate::
upper_before_lower => 1,
preprocess => \&reduce_for_sorting,
entry => deQ<<'END_OF_OVERRIDE'
|Q|
|Q| 005B 006E 002E ; [.0200.0020.0002.0391] # [n.
|Q| 005B ; [.0220.0020.0002.0392] # [
|Q| 005D ; [.0225.0020.0002.0395] # ]
|Q|
END_OF_OVERRIDE
看看效果如何?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)