#!/usr/bin/perl use strict; use warnings; # siehe Perl Kochbuch sub dec2bin { my $str = unpack("B32", pack("N", shift)); $str =~ s/^0+(?=\d)//; # remove leading zeros return $str; } # siehe Perl Kochbuch sub bin2dec { return unpack( "N", pack( "B32", substr("0" x 32 . shift, -32 ) )); } sub foo { my $i = shift; # integer in binaer wandeln; Reihenfolge der Bits im String umkehren my $bitstring = reverse dec2bin($i); # damit jeweils 8 Bit vom Ende genommen werden, wurde die Bitfolge # umgekehrt, damit der Regex jeweils 8 Bit vom Anfang nehmen kann. # Sollten weniger als 8 Bit übrig bleiben, wird dieses Teilstueck # auch genommen. my @parts = $bitstring =~ m/(..{1,7})/g; # jeden Teilstring nun wieder umkehren und in Dezimal wandeln # dabei auch die Reihenfolge der Teile wieder umkehren @parts = reverse map { bin2dec(scalar reverse $_) } @parts; # Ergebnisliste liefern return @parts; } { # perldoc -f local; perldoc perlvar local $,=$/; # gebe Ergebnis aus print foo( 4436 ); }