Paso de un Fichero sin Prefijo como Typeglob

Los manejadores de ficheros (filehandles) pueden ser usados sin declaración previa cuando se usan sin prefijo. En tal caso no se pueden asignar o pasar como parámetros, esto es, es ilegal hacer:

open(F,"fich1"); # Recomendado: open my $F, "fich1";
open(G,"fich2");
F = G;
En los años A.R. (Antes de las Referencias) la alternativa era hacer una asignación de los typeglobs:
                  *F = *G

Lo mismo ocurrıa para el paso de ficheros como parámetros de una función. Vea el siguiente ejemplo:

lhp@nereida:~/Lperl/src$ cat -n fileparameter4.pl
 1  #!/usr/bin/perl
 2  use warnings;
 3  use strict;
 4
 5  sub welcome {
 6    local *FHANDLE = shift;
 7
 8    print FHANDLE "Welcome ...\n";
 9  }
10
11  open(FILE, ">test.txt");
12  welcome(*FILE);
13  close(FILE);

Casiano Rodríguez León
2012-03-31