diff --git a/PHP-Serialization/lib/PHP/Serialization.pm b/PHP-Serialization/lib/PHP/Serialization.pm index f4edf5c..445f522 100644 --- a/PHP-Serialization/lib/PHP/Serialization.pm +++ b/PHP-Serialization/lib/PHP/Serialization.pm @@ -270,7 +270,7 @@ sub _readnum { my $string; while ( 1 ) { my $char = $self->_readchar(); - if ( $char !~ /^[\d\.]+$/ ) { + if ( $char !~ /^[-\d\.]+$/ ) { $$cursor--; last; } diff --git a/PHP-Serialization/t/alt-1.t b/PHP-Serialization/t/alt-1.t index e69de29..992c7ac 100644 --- a/PHP-Serialization/t/alt-1.t +++ b/PHP-Serialization/t/alt-1.t @@ -0,0 +1,21 @@ +#!/usr/bin/perl + +use Test::More tests => 5; +#use Test::More qw/no_plan/; + +use PHP::Serialization qw(unserialize serialize); + +t ([-67]); +t ([-67, -89]); +t ([-1.0890,-20.345,-30.1]); + +t ([[-67]]); +t ([[[[-67]]]]); + + +sub t { + my $data = shift; + my $encoded = serialize($data); + #diag($encoded); + is_deeply($data,&unserialize($encoded)); +}