# Example 1 sub my_sub { my $name = shift; my $mail = shift; my $city = shift; print "$name, from $city, has e-mail address $mail."; } my_sub('Coruscate', 'Red Spot', 'Jupiter'); # Example 2 sub my_sub { my ($name, $mail, $city) = @_; print "$name, from $city, has e-mail address $mail."; } my_sub('Coruscate', 'Red Spot', 'Jupiter'); # Example 3 # Once I hit 4+ arguments, I hit named arguments! # (Yes, I know the example only has 3 args...) sub my_sub { my %q = @_; print "$q{name}, from $q{city}, has e-mail address $q{mail}."; } my_sub( name => 'Coruscate', mail => 'Red Spot', city => 'Jupiter' ); #### sub my_sub { my %q = ( title => 'Untitled', author => 'Anonymous', values => [1,1,1,1,1], values2 => { key1 => 'value1', key2 => 'value2' }, @_ ); print "$q{title} (by $q{author}):\n", "\t- ", join(', ', @{$q{values}}), "\n", "\t- ", join(', ', values %{$q{values2}}), "\n"; } my_sub( title => 'My Title', values2 => { key1 => 'yippee!', key2 => 'booooo!' } );