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:
undef si no se esperaba valor,
"" si se  trata de un escalar,
1 si se trata de una lista.
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)
 
