in reply to Re: SNTP pack and unpack
in thread SNTP pack and unpack

Hello cheako,

Thank you for your time and effort reading and replying to my question.

I modified the code as you propose and also I am using use diagnostics; as I found online to assist me identifying the error. Still I can not understand why my send packet is wrong.

This is the output that I am getting when I execute the code.

Client Transmit: Sat Mar 7 02:29:37 2015 $VAR1 = [ 'B8 C3 N10 B32', '00100011', '0', '0', '0', '0', '0', '0', '0', '0', 1425691777, 761152, '0', '0', 1425691777, 761152 ]; Invalid type '1' in pack at NTPperl.pl line 50 (#1) (F) The given character is not a valid pack or unpack type. See "pack" in perlfunc. (W) The given character is not a valid pack or unpack type but use +d to be silently ignored. Uncaught exception from user code: Invalid type '1' in pack at NTPperl.pl line 50.

Line 50 is:

my $send_sntp_packet = pack @argsforpacksend_sntp_packet;
Seeking for Perl wisdom...on the process of learning...not there...yet!

Replies are listed 'Best First'.
Re^3: SNTP pack and unpack
by choroba (Cardinal) on Mar 07, 2015 at 02:03 UTC
    As can be easily demonstrated by
    print prototype 'CORE::pack';

    pack evaluates the first argument in scalar context. If you supply an array, it turns into the number of its members. You got 1, which is double weird, as it means the array only had one member - you have to supply two things to pack, the template and the list (and, as we have just seen, you can't bundle them in one array).

    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

      Hello choroba,

      Thank you for your time and effort, there are so many things that I do not know. Your answer helped to view the way that pack should be defined.

      I minor note, it would be easier for me and in general for people who do not know much of Perl to write it like this.

      perl -le 'print prototype "CORE::pack"'

      Output:

      $@

      Thanks again for the time and effort, you helped me a lot understanding. Every area that someone has not worked before is always confusing at the beginning.

      Reference to using CORE::pack, CORE::unpack.

      Seeking for Perl wisdom...on the process of learning...not there...yet!