Skip to content

Instantly share code, notes, and snippets.

/sort.pl Secret

Created August 5, 2014 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/a7d19ee8c9016d8044c4 to your computer and use it in GitHub Desktop.
Save anonymous/a7d19ee8c9016d8044c4 to your computer and use it in GitHub Desktop.
sub sort {
my ($self, $cb) = @_;
return $self->new(sort @$self) unless $cb;
my $caller = caller;
no strict 'refs';
my @sorted = sort {
local (*{"$caller\::a"}, *{"$caller\::b"}) = (\$a, \$b);
$a->$cb($b)
} @$self;
return $self->new(@sorted);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment