Perl | wantarray() Function
Last Updated :
07 May, 2019
Improve
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.
Perl
Perl
Syntax: wantarray() Returns: true for list value and false for scalar valuesExample 1:
#!/usr/bin/perl -w
# Subroutine to call wantarray() function
sub geeks
{
return(wantarray() ? ("Geeks", "For", "Geeks") : 1);
}
# Calling the subroutine
# in scalar and array context
$value = geeks();
@value = geeks();
# Printing the values in both contexts
print("Value in Scalar context: $value\n");
print("Value in List Context: @value");
#!/usr/bin/perl -w
# Subroutine to call wantarray() function
sub
{
return(wantarray() ? ("Geeks", "For", "Geeks") : 1);
}
# Calling the subroutine
# in scalar and array context
$value = ();
@value = ();
# Printing the values in both contexts
print("Value in Scalar context: $value\n");
print("Value in List Context: @value");
Output:
Example 2:
Value in Scalar context: 1 Value in List Context: Geeks For Geeks
#!/usr/bin/perl -w
# Subroutine to call wantarray() function
sub geeks
{
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 = geeks($a, $b);
@value = geeks($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");
#!/usr/bin/perl -w
# Subroutine to call wantarray() function
sub
{
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 = ($a, $b);
@value = ($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