Leyendo un archivo. ¿Cuál es el significado de esta línea de código en Perl?

Loading...

Leyendo un archivo. ¿Cuál es el significado de esta línea de código en Perl?

Soy nueva en Perl. Acabo de iniciar hoy con esto y estoy aprendiendo a manipular ficheros.
Conozco el funcionamiento de la estructura while y lo he usado en otros lenguajes. Lo que no comprendo es "($linea=)"
¿Lo que está entre estos símbolos "<>" hace referencia a una "etiqueta" o qué significa?
Aquí está el código:
#!/usr/bin/perl

# Ingreso el nombre del fichero que quiero abrir
print "Nombre del fichero:";
$fichero=;

chop($fichero);

open (INPUT,"$fichero") || die "ERROR: No es posible abrir $fichero\n";

while ($linea=) {
    print $linea;
}

close (INPUT);

Solutions/Answers:

Answer 1:

¿Lo que esta entre estos simbolos “<INPUT>” hace referencia a una
“etiqueta” o qué significa?

Se refiere al contenido del archivo que abriste mediante:

open (INPUT,"$fichero") 

El operador usado <>, es también llamado operador diamante, el cual se parece al operador readline, ejemplo:

use strict;
use warnings;

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

En el caso que comentas ($linea=<INPUT>), el contenido de la linea obtenida del archivo lo agrega a la variable $linea , e imprime el valor :

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

Lo recomendable es usar esta forma para imprimir el valor de cada linea obtenida del archivo:

while (<INPUT>) {
   print "$_";
}

Código con explicación:

#Ingreso el nombre del fichero que quiero abrir
print "Nombre del fichero:";
$fichero=<STDIN>;  #Obtiene nombre del archivo a partir de que el usuario lo teclea. 

chop($fichero); #Eliminar caracter retorno de carro (carriage return).

#Abre archivo, en caso de no realizarlo envía el mensaje "ERROR: No es posible abrir $fichero\n".
open (INPUT,"$fichero") || die "ERROR: No es posible abrir $fichero\n";

#Si pudo abrir el archivo imprime cada linea del mismo.
while ($linea=<INPUT>) {
  print $linea;
}

close (INPUT); #Cierra archivo.

Answer 2:

Lo primero, decirte que se escribe Perl, no PERL. Tienes más información en la página de Perl en la Wikipedia española.

El operador diamante (<>) hace lo mismo que la función readline(), solo que hay que escribir menos. Tienes más información en tu ordenador, ejecutando el comando perldoc -f readline .

References

Loading...