Moose::Autoboxl也能实现Ruby迭代器的功能
今天在网上看到Moose::Autobox可以实现Ruby迭代器的功能,感觉挺有意思的。
Ruby的迭代器:5.times { |each| ... }在perl中可以这样实现:
复制代码
另map、grep还能以oo形式来使用:
复制代码
Ruby的迭代器:5.times { |each| ... }在perl中可以这样实现:
- use Moose::Autobox;
-
- sub Moose::Autobox::SCALAR::times {
- my($count, $block) = @_;
- 1->to($count)->each_key($block);
- }
-
- 5->times(sub {$_->say});
- use Moose::Autobox;
- print "Squares: " . [ 1 .. 10 ]->map(sub { $_ * $_ })->join(', '),"\n";
- print ["apple", "orange", "banana", "watermelon"]->grep(sub{/an/})->join("\n");
作者: aef25u 发布时间: 2011-05-22
挺有意思:
作者: rubyish 发布时间: 2011-05-22