Pues, tradicionalmente, los dos métodos que más se usaban era la concatenación:
Using perl Syntax Highlighting
open FILE
, '<fichero.txt';
my $archivo = join '', <FILE>;
close FILE
;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
y la modificación de la variable especial
$/:
Using perl Syntax Highlighting
open FILE
, '<fichero.txt';
undef $/;
my $archivo = <FILE>;
close FILE
;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
que, de forma más abreviada, quedaba resumida en el modismo
Using perl Syntax Highlighting
my $archivo = do { local $/; open FILE
, 'fichero,txt'; <FILE> };Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Explicación:
- Cambiamos el valor de la variable $/ ("separador de registros a la entrada"), a indefinido, con lo que activamos el modo slurp ("chupador"), pero solo lo hacemos de forma local, dentro de las llaves del do{}. Así no afectará al resto de procesos de lectura del resto del programa
- Abrimos el fichero en modo lectura
- Leemos todo el fichero, y por ser esa la última sentencia del bloque do{}, es lo que se devuelve como resultado.
- El propio do{} se encargará de cerrar el fichero, por lo que no necesitamos poner el close()
Hoy en día se suele preferir usar el módulo
File::Read o
File::Slurp, de igual forma que el File::Util que te comentó Netsoul. Cada uno tiene sus propias capacidades. Por ejemplo, File::Read es capaz de leer ficheros en modo
root, File::Slurp es capaz de hacer la conversión de los finales de línea de Windows a Unix, y File::Util es capaz de bloquear el acceso al fichero para impedir su modificación mientras lo lee.
Yo, generalmente, para el día a día, uso el do{} anterior