next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: ¿Quién llamó a esta Sup: Subrutinas Ant: Aliasing de los parámetros Err: Si hallas una errata ...

Contexto de la llamada

Cuando se llama a una subrutina, es posible detectar si se esperaba un valor escalar, una lista o nada. Estas posibilidades definen tres contextos en los cuales una subrutina puede ser llamada. Por ejemplo:
listdir(@files); # contexto void
$listed = listdir(@files); # contexto escalar
@missing = listdir(@files); # contexto de lista
($f1, $f2) = listdir(@files); # contexto de lista
print (listdir(@files)); # contexto de lista

Esta información puede obtenerse mediante la función wantarray. Esta función devuelve:

Podemos utilizar esta información para seleccionar la información apropiada a utilizar en la sentencia return. El siguiente programa suprime los espacios en blanco al comienzo y al final de la variable:

   1 #!/usr/bin/perl -w
   2 my @many = (" one ", "  two  ", "   three   ");
   3 my $string = "\n\nstring\n\n";
   4 print "string = $string\n";
   5 print "many = (@many)\n";
   6 $string = trim($string);
   7 @many = trim(@many);
   8 print "string = $string\n";
   9 print "many = (@many)\n";
  10 
  11 sub trim {
  12   my @out = @_;
  13 
  14   for (@out) {
  15     s/^\s+//;
  16     s/\s+$//;
  17   }
  18   return wantarray? @out : $out[0];
  19 }
  20
Ejemplo de ejecución:
> trim.pl
string =

string


many = ( one    two      three   )
string = string
many = (one two three)


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: ¿Quién llamó a esta Sup: Subrutinas Ant: Aliasing de los parámetros Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21