我在一本名为'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));
});
}
Run Code Online (Sandbox Code Playgroud)
bol*_*lav 12
my ($h, @s) = @_;取阵列的第一值@_,并把它在$h和处于静止@s.
my ($h, @s) = grep $_, @_;获取第一个真值并将其放入$h其余的真值中并将其放入@s.
perl中的真值是不是空字符串'',0或undef的东西.
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |