1. Inicio
  2. Tecnologia
  3. Perl
  4. Manejo básico de Archivos

Manejo básico de Archivos

Abrir un Archivo

Para poder leer el contenido de un archivo desde un programa, primero hay que abrirlo. Para ello es necesario indicarle al sistema operativo que se desea usar dicho archivo. En respuesta el sistema operativo retorna un identificador del archivo al programa.

En Perl se usa la función open para abrir un archivo. Ej:

my $archivo = 'datos.txt';
open (my $fh, '<', $archivo)  or die "No se puede abrir el archivo $archivo : $!";

La función open recibe tres parámetros: una variable léxica que es el identificador del archivo, el modo de apertura y el nombre del archivo, en ese mismo orden. Cuando un archivo es abierto, el identificador entregado por el sistema operativo es asignado a la variable léxica especificada como primer parámetro.

La función open retorna el valor undef si la operación de apertura del archivo falla. Se puede lanzar una excepción para señalar el error, comunmente se usa die (como se muestra en el ejemplo) pero se puede usar cualquier otro mecanismo ofrecido por el lenguaje para ello.

Los modos de apertura son los siguientes:

SímboloModo
<Lectura
>Escritura
>>Añadir

Para los modos '>' y '>>' el archivo es creado si no existe previamente.

Leer datos de un Archivo

Para leer datos de un archivo previamente debe estar abierto en modo lectura y luego se usa el operador de entrada <> (conocido como operador diamante). Es en el siguiente ejemplo se muestra como leer e imprimir todas las lineas de un archivo.

my $archivo = 'datos.txt';
open (my $fh, '<', $archivo)  or die "No se puede abrir el archivo $archivo : $!";

while (my $linea = <$fh>) {
  print $linea;
}

El operador diamante retorn a un valor falso al encontrar el final del archivo.

Escribir a un Archivo

Si se desea escribir a un archivo hay que especificar el modo '>' y usar la función print para enviarle los datos. Por ejemplo:

my $archivo = 'salida.txt';
open (my $fh, '>', $archivo)  or die "No se puede abrir el archivo $archivo : $!";

print $fh 'Esta linea aparace en el archivo salida.txt';

El procedimiento para agregar datos a un archivo es similar al mostrado arriba solo que se usa el modo de apertura '>>'.

Cerrar un Archivo

Después de leer o escribir a un archivo éste debe ser cerrado usando la función close;

close ($fh) or die "No se puede cerrar el archivo $archivo: $!";

Esta acción es muy importante al escribir datos a un archivo, ya que le indica al sistema operativo que complete la escritura del archivo al disco.