Perl | wantarray() Function
wantarray() function in Perl returns True if the currently executing subroutine expects to return a list value, and false if it is looking for a scalar value.
Syntax: wantarray()
Returns: true for list value and false for scalar values
Example 1:
#!/usr/bin/perl -w # Subroutine to call wantarray() function sub Beginner { return ( wantarray () ? ( "Beginner" , "For" , "Beginner" ) : 1); } # Calling the subroutine # in scalar and array context $value = Beginner(); @value = Beginner(); # Printing the values in both contexts print ( "Value in Scalar context: $value\n" ); print ( "Value in List Context: @value" ); |
Output:
Value in Scalar context: 1 Value in List Context: Beginner For Beginner
Example 2:
#!/usr/bin/perl -w # Subroutine to call wantarray() function sub Beginner { if ( wantarray ()) { # Addition of two numbers when # wantarray() function is called # in list context $c = $a + $b ; } else { # When wantarray() is called # in Scalar context return 1; } } # Driver Code $a = 10; $b = 20; $c = 0; # Calling Subroutine in scalar and list contexts $value = Beginner( $a , $b ); @value = Beginner( $a , $b ); # Printing values in both the contexts print ( "Value when called in Scalar context: $value\n" ); print ( "Value when called in List Context: @value" ); |
Output:
Value when called in Scalar context: 1 Value when called in List Context: 30