Perl 什么';“我的($h,@s)=@;`和'my($h,@s)=grep$'`
我在一本名为“High order Perl”的书中读到了这段代码,我不明白为什么要费心使用grep,但是如果我改为第一条语句,事情就开始出错了,有人能解释一下吗?谢谢 上下文:第6章和第5节中的代码Perl 什么';“我的($h,@s)=@;`和'my($h,@s)=grep$'`,perl,grep,Perl,Grep,我在一本名为“High order Perl”的书中读到了这段代码,我不明白为什么要费心使用grep,但是如果我改为第一条语句,事情就开始出错了,有人能解释一下吗?谢谢 上下文:第6章和第5节中的代码 sub union { my ($h, @s) = grep $_, @_; return unless $h; return $h unless @s; node(head($h), promise { union(@s, tail($h)); }); } my($h,@s)
sub union {
my ($h, @s) = grep $_, @_;
return unless $h;
return $h unless @s;
node(head($h), promise {
union(@s, tail($h));
});
}
my($h,@s)=@
获取数组@
的第一个值并将其放入$h
中,其余值放入@s
my($h,@s)=grep$\uu
获取第一个真值并将其放入$h
中,其余真值并将其放入@s
中
perl中的真值不是空字符串“”、0或undef。鉴于这两个语句之间的区别在于使用了
grep
函数,那么我建议阅读是获得问题答案的好地方
grep阻止列表
grep EXPR,列表
这在精神上与grep(1)及其应用程序类似,但并不相同
亲戚。特别是,它不限于使用常规的
表情
为列表的每个元素计算块或表达式(本地设置
$\
到每个元素),并返回由这些元素组成的列表值
表达式对其求值为true的元素。在标量中
返回表达式为真的次数
列表中有哪些值?你在谈论这本书的哪一部分?这将更容易用上下文来回答。Mark Jason Dominus称之为高阶Perl。你能指出那一页或那一章吗?这有点断章取义。你可以回答你的问题。