YuckFoo has asked for the wisdom of the Perl Monks concerning the following question:
This works fine, but I'm little dizzy from hoop-jumping. Is there a shorter way to get there? Here is my example, in baby Perl to be clear about the steps. Please note: I'm not looking for denser code, I know I can use map to eliminate temporary variables. I'm looking for a better algorithm.
PackFoo
#!/usr/bin/perl use strict; my ($num, $str, @bytes); $num = -1.18024688796416e+29; $str = pack('f', $num); showstring('native', $str); @bytes = split('', $str); @bytes = reverse(@bytes); $str = join('', @bytes); $str = pack('a4', $str); showstring('alien ', $str); #----------------------------------------------------------- sub showstring { my ($label, $str) = @_; my @bytes = unpack('H2H2H2H2', $str); print "$label 0x", join("", @bytes), "\n"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Packing floats and reversing endian
by Zaxo (Archbishop) on Jun 06, 2003 at 17:50 UTC | |
by YuckFoo (Abbot) on Jun 06, 2003 at 17:59 UTC | |
|
Re: Packing floats and reversing endian
by BrowserUk (Patriarch) on Jun 06, 2003 at 19:12 UTC | |
|
Re: Packing floats and reversing endian
by rir (Vicar) on Jun 06, 2003 at 18:35 UTC |