#use bytes; $x = "\xAA"; print unpack 'B*', $x; print " --> "; $x = chr( ord( $x ) << 1 ); print unpack 'B*', $x; print "\n---\n"; $x = pack( "C*", 0xAA ); print unpack 'B*', $x; print " --> "; $x = pack( "C", unpack( "C", $x ) << 1 ); print unpack 'B*', $x; print "\n---\n"; #### Character in 'B' format wrapped in unpack at /tmp/j1.pl line 7. 10101010 --> 01010100 --- Character in 'C' format wrapped in pack at /tmp/j1.pl line 14. 10101010 --> 01010100 ---