{
  my $isint = qr{^\s*-?\d+\s*$};
  my $isfrac =  qr{^\s*(-?\d+)(/(-?\d+))?$};
  my %_const_handlers =
    (q => sub { 
                if ($_[1] =~ $isfrac) {
                  return __PACKAGE__->new(num => $1, den => $3 || 1) || $_[1];
                }   
                else { 
                  $_[1];
                }   
              }); 
  sub import {
    overload::constant %_const_handlers if $_[1] and $_[1] eq ':constants';
  }
  sub unimport {
    overload::remove_constant(q => undef);
  }
Casiano Rodríguez León
