Bueno, en Perl se puede hacer de muchas formas. Yo solo te pongo unas pocas.
Puedes usar join() para unir todas las líneas:
Using perl Syntax Highlighting
open my $FILE, q[<], 'test.txt';
my $wor = join q[], <$FILE>;
close $FILE;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Puedes indefinir la variable
$/ (delimitador de los registros de entrada), y de esa manera se activa el modo 'slurp' (más información en perlvar).
Using perl Syntax Highlighting
undef $/;
open my $FILE, q[<], 'test.txt';
my $wor = <$FILE>;
close $FILE;Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Un modismo muy popular es hacer lo anterior, pero en una sola línea, lo cual aísla el cambio de $/ del resto del programa (no afectará al resto de open()):
Using perl Syntax Highlighting
my $wor = do { local $/; open my $FILE, q[<], 'test.txt'; <$FILE> };Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Ni siquiera hace falta el close().
Hay módulos especializados, como
File::Read o
File::Slurp. Este último exporta una función, llamada 'slurp', que corresponde con la misma función que trae de base Perl v6. Este es el método que más uso.