J'ai un Wich struct contient:En Perl, comment puis-je décompresser plusieurs variables?
struct mystruct{
int id[10];
char text[40];
unsigned short int len;
};
Et je suis en train de déballer dans une seule ligne, quelque chose comme ceci:
my(@ids,$text,$length) = unpack("N10C40n",$buff) ;
Mais tout va au premier réseau (@ IDs), j'ai essayé modèles comme "N10 C40 n
" et "(N10)(C40)(n)
" Donc, soit cela ne peut pas être fait ou je n'utilise pas la bonne chaîne de modèle.
Remarque: J'utilise des données big endian.
Des indices?
Avec que je ne reçois pas de C40 au texte de $, Au lieu de cela, je vais d'abord C en $ texte et en second lieu C à $ longueur –
Hmm, j'avais supposé que votre déballage était correct, laissez-moi jeter un coup d'œil. –
Vous voulez probablement 'A40' au lieu de' C40'. 'A40' est une chaîne d'une quarantaine de caractères, 'C40' est quarante octets individuels. Vous pouvez également vouloir 'Z40' qui serait mieux en accord avec l'idée que' text' est une chaîne de style C (c'est-à-dire une séquence de caractères de fin nulle). –