【发布时间】:2018-09-09 08:22:02
【问题描述】:
我发现自己想在 Perl (v5) 中对哈希使用语句修饰符形式的迭代:
my %h = (...);
do_something($_[0], $_[1]) for each %h; ### $_[0] => key, $_[1] => val
或者:
my %h = (...);
my @ary = %h;
do_something($_[0], $_[1]) for splice(@ary, 0, 2);
当然,这两种形式都不存在。只是好奇是否有任何工作支持splice 或each 与for 的语句修饰符形式一起使用?在 Perl 6 或通过 backport v5 中?
【问题讨论】:
-
each甚至不是循环。 -
@melpomene 好点子,我已经更新了帖子以将
each与splice放在同一位置 -
for each %h已经做了其他事情:each返回一个包含两个元素的列表(键、值),for对其进行迭代。 -
“语句修饰符”是指修改
$_[0]和$_[1]的值的do_something(...)函数吗? -
@mob:“语句修饰符”是指此处描述的 Perl 语法:perldoc.perl.org/perlsyn.html#Statement-Modifiers
标签: perl loops foreach syntax iterator