5. ENTRADA/SALIDA.

Los manejadores de archivos tienen su propio nombre característico, que generalmente están en mayúsculas para evitar confusiones. Los manejadores de archivos predefinidos son :

STDIN STDOUT STDERR

Mencionar un manejador de archivo entre los símbolos hace que se lea la siguiente línea si se está trabajando con un escalar, todas las líneas si se trabaja con un arreglo; las líneas nuevas se dejan intactas.

		$linea = ;

@lineas = ;

<> significa TODOS los archivos que se proporcionan en la línea de comandos ( o en STDIN si no hay ninguno). Al usarlo de esta manera, $ARGV es el nombre de archivo actual.

Al usarlo en un ciclo WHILE, las líneas de entrada son automáticamente asignadas a la variable $_ .

Generalmente se itera un archivo manejando una sola línea a la vez, asignando a $_ cada vez y usándolo como operando default.

	while ( <> ) {

next if /^#/ ; # Saltarse los comentarios

s/bueno/malo/g ; # Sustituto global

print; # Imprime $_

}

Si no se usa el pseudo-archivo <>, se abre un manejador de archivos :

		open (PWD,		"/etc/passwd");

open (TMP, ">/tmp/foobar.$$");

open (LOG, ">>logfile");

open (TOPIPE, "| lpr");

open (FROMPIPE, "/usr/etc/netstat -a |");

Se puede también utilizar getc para E/S de un caracter y read para E/S cruda.

Se tiene acceso a llamadas eof, seek, close, flock, ioctl, fcntl y select para usarlas con MANEJADORES DE ARCHIVOS.

Se tiene acceso a llamadas mkdir, rmdir, chmod, chown, link, symlink, stat, rename y unlink para usarlas con NOMBRES DE ARCHIVOS.

Se puede pasar un manejador de archivo como parámetro para printf a menos que se quiera imprimir a STDOUT.

		printf LOG "%-8s %s : bits raros : %08x \n",

$program, &ctime, $bits ;

Se pueden ligar arreglos asociativos a archivos dbm con dbmopen( ).



Volver