The wantarray Function and User-Defined Subroutines : wantarray « Subroutine « Perl






The wantarray Function and User-Defined Subroutines

   

#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=<STDIN>);

@arrayname = title($fullname);   # Context is array
print "$arrayname[0] / $arrayname[2]!\n";
print "book name? ";
chomp($bookname=<STDIN>);
$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;  
}

   
    
    
  








Related examples in the same category

1.wantarray() returns true if caller wants list, false if caller wants scalar, and an undefined value if the caller wants nothing.