#When you want a subroutine to behave in a certain way based on the context in which it was called. #!/usr/bin/perl print "Name? "; chomp($fullname=); @arrayname = title($fullname); # Context is array print "$arrayname[0] / $arrayname[2]!\n"; print "book name? "; chomp($bookname=); $scalarname = title($bookname); # Context is string print "The book $arrayname[0] is reading is $scalarname.\n"; sub title{ my $text=shift; my $newstring; my$text=lc($text); my @newtext=split(" ", $text); foreach my $word ( @newtext ){ $word = ucfirst($word); # Capitalize the first letter $newstring .= "$word "; } @newarray = split(" ", $newstring); chop($newstring);# Remove trailing whitespace return wantarray ? @newarray : $newstring; }