in reply to Re^2: HEX to floating point
in thread HEX to floating point

I entered your code into a file with the PERL load module

Hm. I'm afraid I have no idea what that means? What is the "Perl load module"?

Perhaps you could cut & paste the terminal session to show what you did?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^4: HEX to floating point
by Spooky (Beadle) on Jun 16, 2008 at 15:39 UTC
    This is what I'd like to be able to do but when I entered your code into a file with the PERL load module I didn't get anything like your output - I did get a huge floating point number! ..any suggestions - I am new at PERL as if you didn't already guess... Here's my file: #!/fs/COTS/gnu/bin/AIX/perl $raw = pack 'H*", '00000034000031b110191403b8811bb1366e4'; print for reverse unpack 'dCCVV', reverse $raw ; ..when I run this (simply type "test.pl") I get : 1331232565922520241.709119561536

      Please read Writeup formatting tips. Particularly, please wrap your code samples in 'code tags' thus:

      <code> ## Your code goes here </code>

      Your example will then display as:

      #!/fs/COTS/gnu/bin/AIX/perl $raw = pack 'H*', '00000034000031b110191403b8811bb1366e4'; print for reverse unpack 'dCCVV', reverse $raw

      Now, the reason you are not getting the same results is because no linefeeds are being produced, so all the numbers are being abutted. There are three ways to fix that problem.

      1. Append the newline character to the end of each thing printed:
        #!/fs/COTS/gnu/bin/AIX/perl $raw = pack 'H*', '00000034000031b110191403b8811bb1366e4'; print $_, "\n" for reverse unpack 'dCCVV', reverse $raw
      2. Add -l to the shebang line: (This is what I did.)
        #!/fs/COTS/gnu/bin/AIX/perl -l $raw = pack 'H*', '00000034000031b110191403b8811bb1366e4'; print for reverse unpack 'dCCVV', reverse $raw
      3. If you are using perl 5.10, then use say instead of print:
        #!/fs/COTS/gnu/bin/AIX/perl $raw = pack 'H*', '00000034000031b110191403b8811bb1366e4'; say for reverse unpack 'dCCVV', reverse $raw

      BTW: Stupid as it is, some people will get upset with you if you continue to write "PERL". You should use 'Perl' or 'perl' (the first to indicate the language, the second to indicate the interpreter (load module)) in order to avoid that.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        O.K. - it is late and I'm feeling medium dumb but won't the mismatched quotes in $raw = pack 'H*", cause some problems?

        Or is Perl even brighter thatn I thought?

        Nothing succeeds like a budgie with no teeth.