1: pack( 'b*', vec( '&|^', $index-1, 1 ) ? '~' : '' ) 2: $commabyte 3: pack( 'c', vec( '&|^', ($index-1)%3, 8 ) ) 4: pack( 'b*', vec( '&|^', $index-1, 1 ) ? '' : '~' ) 5: vec( $textstr, $index-1, 8 ) )