This prints:use warnings; use strict; my %formal_name = ( bill => 'william', will => 'william', abe => 'abraham' ); print_formal_name('will'); print_formal_name('sam'); print_all_nicknames('wiLLiam'); print_all_nicknames('thomas'); sub print_formal_name { my $nickname = shift; if (exists $formal_name{lc $nickname}) { print "The formal name for $nickname is ", ucfirst $formal_nam +e{lc $nickname}, ".\n"; } else { print "There is no formal name for $nickname.\n"; } } sub print_all_nicknames { my $formalname = shift; my @nicknames; for my $nickname (keys %formal_name) { if ($formal_name{$nickname} eq lc $formalname) { push @nicknames, ucfirst $nickname . ', '; } } if (@nicknames) { $nicknames[$#nicknames] =~ s/, //; print ucfirst lc $formalname, " has these nicknames: ", @nickn +ames, ".\n"; } else { print ucfirst lc $formalname, " has no nicknames.\n"; } }
The formal name for will is William. There is no formal name for sam. William has these nicknames: Will, Bill. Thomas has no nicknames.
In reply to Re: Help on format or better way to do..?
by toolic
in thread Help on format or better way to do..?
by learnperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |