package Curryable; sub curry { my ($self, $method_name, @args) = @_; my $method = $self->can($method_name) || die "No $method_name method found"; return sub { $self->$method(@args, @_) }; }