sub from(\$$$){ my ($ref,$list,$code)=@_; return sort{ $$ref = $a ; my $ra = $code->(); $$ref = $b ; my $rb = $code->(); no warnings; $ra <=> $rb or $ra cmp $rb }@$list; } sub in(\@) { return $_[0]; } sub order_by(\&) { return $_[0] }