perl | Función wantarray()

La función wantarray() en Perl devuelve True si la subrutina que se está ejecutando actualmente espera devolver un valor de lista y false si está buscando un valor escalar.

Sintaxis: wantarray()

Devuelve: verdadero para el valor de la lista y falso para los valores escalares

Ejemplo 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");
Producción:

Value in Scalar context: 1
Value in List Context: Geeks For Geeks

Ejemplo 2:

#!/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");
Producción:

Value when called in Scalar context: 1
Value when called in List Context: 30

Publicación traducida automáticamente

Artículo escrito por Code_Mech y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *