Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Longueur maximale d'une variable ?

3 réponses
Avatar
Thibaut Maquet
Bonjour,

Je lis le contenu d'un fichier et je concatène les enregistrements comme suit:

while ($li = <fd>) {
$rec = $rec . $li;
}

Ma question existentielle est la suivante: jusqu'où puis-je aller ?
Quelle est la longueur maximale d'une variable ?


Cordialement
Thibaut Maquet
www.pagasa.net

3 réponses

Avatar
kurtz le pirate
In article <449828f1$0$888$,
"Thibaut Maquet" wrote:

Bonjour,

Je lis le contenu d'un fichier et je concatène les enregistrements comme suit:

while ($li = <fd>) {
$rec = $rec . $li;
}


pas bien :))) et le mode 'slurp' alors ?

open my $fh, "foo" or die $!;
local $/; # tablit le mode slurp en local
my $content = <$fh>;
close $fh;

<http://perl.enstimac.fr/DocFr/perlvar.html>

Ma question existentielle est la suivante: jusqu'où puis-je aller ?
Quelle est la longueur maximale d'une variable ?


la taille max de la variable devrait être la taille maxi de la mémoire à
laquelle perl peut accéder non ?



--
klp

Avatar
Nicolas George
kurtz le pirate wrote in message
:
open my $fh, "foo" or die $!;
local $/; # tablit le mode slurp en local
my $content = <$fh>;
close $fh;


Je préfère :

my $content = do {
open my $fh, "<", "foo" or die "foo: $!";
local $/;
<$fh>
};

Comme ça, la portée d'open et du local sont bien définies.

Avatar
tuser
Thibaut Maquet wrote:
Bonjour,

Je lis le contenu d'un fichier et je concatène les enregistrements comm e suit:

while ($li = <fd>) {
$rec = $rec . $li;
}

Ma question existentielle est la suivante: jusqu'où puis-je aller ?
Quelle est la longueur maximale d'une variable ?
Thibaut Maquet wrote:

Bonjour,

Je lis le contenu d'un fichier et je concatène les enregistrements comm e suit:

while ($li = <fd>) {
$rec = $rec . $li;
}

Ma question existentielle est la suivante: jusqu'où puis-je aller ?
Quelle est la longueur maximale d'une variable ?


La limite est la mémoire disponible sur le système, si tu as 1 Giga
disponible, tu pourras aller assez loin :-)

Mais attention, il y a toujours une consommation de mémoire
supplémentaire pour l'administration, particulièrement pour les
hashes (par ex. "%rec"), mais aussi pour les lists (par ex. "@rec") et
même pour les variables simples (par ex. "$rec").