2010-10-15 16 views
4

J'utilise la fonction pack pour envoyer le contenu d'une liste à un socket. Le code est donné ci-dessous.Problème avec l'envoi d'un tableau en utilisant la fonction 'pack' en perl

$message_array = pack ("(A*)*", @ul_dcch_message); 

Le contenu de la liste sont

@ul_dcch_message = (101101012411011, "emergency", 25, "simple"); 

Ce morceau de code envoie toutes les chaînes et les numéros figurant dans la liste. Mais si les chiffres présents dans la liste dépasse 15 chiffres, je reçois quelque chose comme ça,

1.01101012411011e+16emergency25simple 

Mon exigence est, je veux les numéros « pack », ainsi que des chaînes, le nombre dépassera 15 chiffres ou plus .

Y a-t-il un moyen de le faire? Y a-t-il d'autres modèles pour le faire?

Toute aide est appréciée.

Répondre

7

Citer le nombre de sorte que pack puisse l'interpréter comme une chaîne de caractères plutôt qu'un nombre représenté en notation exponentielle.

@ul_dcch_message = ('101101012411011', 'emergency', '25', 'simple'); 
+3

Ou simplement '$ message_array = pack" (A *) * ", carte {q/$ _ /} @ul_dcch_message;' – Zaid