gpt4 book ai didi

perl - 是否有类似引号的内插单词列表运算符?

转载 作者:行者123 更新时间:2023-12-01 00:56:41 24 4
gpt4 key购买 nike

qw{}是编写列表的一种漂亮方式。是否有类似的插值词,即扩展变量? perlop似乎没有提到任何。

最佳答案

不,没有内置的,但我们中的许多人自己编写。

也适用于ql()的两种需要行列表。我用 deQ对于 q()版本和 deQQ对于 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;

}

或者
        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

看看它是如何工作的?

关于perl - 是否有类似引号的内插单词列表运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5771428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com