use Modern::Perl;
 use Bit::Vector;
 use Data::Dump qw/dump/;

 my %conversion = (
     ' ' => 0,
     0   => 1,
     1   => 2,
     2   => 3,
     3   => 4,
     4   => 5,
     5   => 6,
     6   => 7,
     7   => 8,
     8   => 9,
     9   => 10,
     A   => 11,
     B   => 12,
     C   => 13,
     D   => 14,
     E   => 15,
     F   => 16,
     G   => 17,
     H   => 18,
     I   => 19,
     J   => 20,
     K   => 21,
     L   => 22,
     M   => 23,
     N   => 24,
     O   => 25,
     P   => 26,
     Q   => 27,
     R   => 28,
     S   => 29,
     T   => 30,
     U   => 31,
     V   => 32,
     W   => 33,
     X   => 34,
     Y   => 35,
     Z   => 36,
 );
 my %inverted;

 my $vector = Bit::Vector->new(6);
 for ( keys %conversion ) {
     $vector->from_Dec( $conversion{$_} );
     $conversion{$_} = $vector->to_Bin();
     $inverted{ $vector->to_Bin() } = $_;
 }
 while (<>) {
     chomp;
     my $string = join '', map { $conversion{$_} } split //;
     my $vector = Bit::Vector->new_Bin( 36, $string );
     my $bits = $vector->to_Bin;
     $bits =~ s/([01]{6})/$inverted{$1}/ge;
     say $bits;
 }
