Acme-BadFont

 view release on metacpan or  search on metacpan

lib/Acme/BadFont.pm  view on Meta::CPAN

package Acme::BadFont;
use strict;
use warnings;

our $VERSION = '1.000000';
$VERSION =~ tr/_//d;

use Scalar::Util qw(dualvar looks_like_number);
use overload ();

sub import {
  overload::constant(q => sub {
    my $string = $_[1];
    my $number = $string;
    if (looks_like_number($number)) {
      return $string;
    }
    elsif ($number =~ tr/OoIlZzEASsGBq/0011223455689/ and looks_like_number($number)) {
      $number += 0;
      return dualvar($number, $string);
    }
    return $string;
  });
}

sub unimport {
  overload::remove_constant('q');
}

1;
__END__

=head1 NAME

Acme::BadFont - Cope with a bad font in your editor

t/basic.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;

my @warnings;
{
  local $SIG{__WARN__} = sub { push @warnings, @_ };
  eval '#line '.(__LINE__+1).' "'.__FILE__.q{"
    use Acme::BadFont;
    cmp_ok "1OO" + 1, '==', 0+"I0I";
    cmp_ok "I.S" * 2, '==', 0+"E";
    1;
  } or die $@;
}
is join('', @warnings), '', 'no warnings';

done_testing;



( run in 0.244 second using v1.01-cache-2.11-cpan-4d50c553e7e )