Проблема с отправкой массива с помощью функции pack в perl - PullRequest
4 голосов
/ 15 октября 2010

Я использую функцию pack для отправки содержимого списка в сокет.Код указан ниже.

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

Содержимое списка:

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

Этот фрагмент кода отправляет все строки и числа, содержащиеся в списке.Но если числа, присутствующие в списке, превышают 15 цифр, я получаю что-то вроде этого:

 1.01101012411011e+16emergency25simple

Мое требование: я хочу «упаковать» как числа, так и строки, числа будут превышать 15 цифрили больше.

Есть ли способ сделать это ??Есть ли другие шаблоны для этого ??.

Любая помощь приветствуется.

1 Ответ

7 голосов
/ 15 октября 2010

Заключите число в кавычки, чтобы pack мог интерпретировать его как строку символов, а не как число, представленное в экспоненциальной записи.

@ul_dcch_message = ( '101101012411011', 'emergency', '25', 'simple' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...