Acme-Text-Viceversa

 view release on metacpan or  search on metacpan

lib/Acme/Text/Viceversa.pm  view on Meta::CPAN


sub ǝʇɐʇoɹ {
    my $self = shift;
    my $str = shift;
     croak $self->ǝʇɐʇoɹ( __PACKAGE__ . " accepts only ascii and their upset." )
    unless $str =~ /^(:?[ -~$list]+)$/o;
    my @results = ();
    my $string = '';
    my $buffer = '';
    while ( $string = substr( $str, 0, 1, '' ) or $string eq '0' ){
        # some charactors have length 2 even if they were under utf8
        if( exists $rot180{$string} ) {
            unshift @results, $rot180{$string};
            $buffer = '';
        }else{
            $buffer .= $string;
            next unless exists $rot180{$buffer};
            unshift @results, $rot180{$buffer};
            $buffer = '';
        }
    }



( run in 0.596 second using v1.01-cache-2.11-cpan-65fba6d93b7 )