##
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;