Dr.Ruud wrote:
Rob Dixon schreef:use strict; use warnings; my @hex = ("31","59", "4C","15","53","DD","54","31"); my $hex = join '', @hex; # (1) my $binary = unpack 'b*', pack 'H*', $hex; # (2) my @fields = $binary =~ /.{1,7}/g; $_ = reverse foreach @fields; print "$_\n" foreach @fields;Nice approach. (1) This assumes that values < "10" have a 0-prefix, so like "0A" and not just "A". Alternatives: my $hex = join '', map {sprintf "%02x", hex} @hex; my $hex = join '', map substr("00$_", -2), @hex; my $hex; $hex .= substr("00$_", -2) for @hex;
Or, since we don't really need the intermediate $hex, just my $binary = unpack 'b*', join '', map chr hex, @hex; But this is a beginners' group :) Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
