Perl

Page principale

Répondre à ce message
Auteur: Frederic Mantegazza
Date:  
À: guilde
Sujet: Perl
Re-bonjour,

En perl, je souhaite transferer une zone memoire, correspondant a une
structure C, dans des variables (chaque variable correspond a un des champs
de la structure).

En C :

type def struct {
    int     a;
    float   b;
    char    c[10];
} foo;


En Perl :

# $a, $b et $c sont mes variables ou je veux ranger ma structure.
# $foo contient la structure (binaire)
$struct = "ifa10';
($a, $b, $c) = unpack($struct, $foo);

Comme j'ai un grand nombre de variables, et que je souhaite aussi pouvoir
re-sauver ces variables dans la structure binaire, j'aimerais trouver un
moyen pour simplifier l'ecriture.

Mon idee etait de creer un tableau p contenant mes variables (ou des
reference a mes variables, ou autre) afin de remplacer :

($a, $b, $c) = unpack($struct, $foo);
# et
$foo = pack($struct, $a, $b, $c);

par quelque chose du genre :

@p = unpack($struct, $foo);
# et
$foo = pack($struct, @p);

Ce que je ne sais pas, c'est comment declarer mon tableau p pour que
l'affectation modifie les variables contenues dans le tableau ($a, $b et
$c).

Quelqu'un aurait-il une solution ? Merci d'avance.

-- 
    Frederic


"Nous vivons une epoque moderne, le progres fait rage..." (Philippe Meyer)