use Bit::Vector; my $size=16; my $bits = Bit::Vector->new_Bin($size,"1101000010101111"); print "orig:\t\t",$bits->to_Bin(), "\n"; $bits->Interval_Reverse(($_-1)*8,$_*8-1) for (1..($size/8)); print "byte-rev:\t",$bits->to_Bin(), "\n"; __END__ orig: 1101000010101111 byte-rev: 0000101111110101