my ($this, $a, $b) = @_; #### sub convert (:$from, :$to, :$thing) { ... } #### package Signatures; sub import { no warnings; no strict; my $package = caller; for (keys %{ $package . '::' }) { next unless exists &{ $package . "::$_" }; my $sub = \ &{ $package . "::$_" }; next unless my $proto = prototype $sub; *{ $package . "::$_" } = eval qq { sub { package $package; local ($proto) = \@_; \$sub->() } } } } #### #!perl -l foo("aaaa", "bbb"); sub foo ($a, $b) { print $a; print $b } use Signatures;