use Getopt::Long; sub my_sub { local @ARGV = @_; my %args; GetOptions(\%args, "name=s", "alter=i") or die "wrong usage!"; for my $key ( sort keys %args ) { print "$key = $args{$key}\n"; } return 1; } my_sub(-name => "ich", -alter => 19);