bigint: Fix new oct override for older Math::BigInt
authorFather Chrysostomos <sprout@cpan.org>
Thu, 4 Oct 2012 16:12:03 +0000 (09:12 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 4 Oct 2012 16:37:59 +0000 (09:37 -0700)
Older versions of Math::BigInt required the input to from_oct to
begin with a 0.

dist/bignum/lib/bigint.pm

index 2d125b9..467a67d 100644 (file)
@@ -137,7 +137,7 @@ sub oct(' . $proto . ')' . <<'.';
   {
   my $i = @_ ? $_[0] : $_;
   # oct() should never fall back to decimal
-  return Math::BigInt->from_oct($i) if $i =~ /^(?:0[0-9]|[1-9])/;
+  return Math::BigInt->from_oct($i) if $i =~ s/^(?=0[0-9]|[1-9])/0/;
   Math::BigInt->new($i);
   }
 .
@@ -166,7 +166,7 @@ sub _oct(_)
     unless $$hh{bigint}||$$hh{bignum}||$$hh{bigrat};
   my $i = $_[0];
   # oct() should never fall back to decimal
-  return Math::BigInt->from_oct($i) if $i =~ /^(?:0[0-9]|[1-9])/;
+  return Math::BigInt->from_oct($i) if $i =~ s/^(?=0[0-9]|[1-9])/0/;
   Math::BigInt->new($i);
   }
 .