【发布时间】:2010-11-22 11:04:06
【问题描述】:
所以我有一个 Perl 类。它有一个sort() 方法,我希望它或多或少与内置的sort() 函数相同:
$object->sort(sub ($$) { $_[0] <=> $_[1] });
但我做不到:
$object->sort(sub { $a <=> $b });
因为范围。但是 List::Util 模块使用reduce() 执行此操作。我查看了 List::Util 模块,他们使用no strict 'vars' 做了一些相当讨厌的事情来实现这一点。我试过了,但没有用。
据我了解,reduce() 以它的方式工作,因为它被导出到适当的命名空间中,因此我的类不能这样做,因为该函数非常牢固地位于另一个命名空间中。这是正确的,还是在我的情况下有一些(无疑更可怕和不明智的)方法可以做到这一点?
【问题讨论】: