|
Packit |
14c646 |
#!./perl
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub BEGIN {
|
|
Packit |
14c646 |
unshift @INC, 't';
|
|
Packit |
14c646 |
unshift @INC, 't/compat' if $] < 5.006002;
|
|
Packit |
14c646 |
require Config; import Config;
|
|
Packit |
14c646 |
if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bStorable\b/) {
|
|
Packit |
14c646 |
print "1..0 # Skip: Storable was not built\n";
|
|
Packit |
14c646 |
exit 0;
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
use Storable ();
|
|
Packit |
14c646 |
use Test::More tests => 3;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
our $f;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
package TIED_HASH;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub TIEHASH { bless({}, $_[0]) }
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub STORE {
|
|
Packit |
14c646 |
$f = Storable::freeze(\$_[2]);
|
|
Packit |
14c646 |
1;
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
package TIED_ARRAY;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub TIEARRAY { bless({}, $_[0]) }
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub STORE {
|
|
Packit |
14c646 |
$f = Storable::freeze(\$_[2]);
|
|
Packit |
14c646 |
1;
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
package TIED_SCALAR;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub TIESCALAR { bless({}, $_[0]) }
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
sub STORE {
|
|
Packit |
14c646 |
$f = Storable::freeze(\$_[1]);
|
|
Packit |
14c646 |
1;
|
|
Packit |
14c646 |
}
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
package main;
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
my($s, @a, %h);
|
|
Packit |
14c646 |
tie $s, "TIED_SCALAR";
|
|
Packit |
14c646 |
tie @a, "TIED_ARRAY";
|
|
Packit |
14c646 |
tie %h, "TIED_HASH";
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
$f = undef;
|
|
Packit |
14c646 |
$s = 111;
|
|
Packit |
14c646 |
is $f, Storable::freeze(\111);
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
$f = undef;
|
|
Packit |
14c646 |
$a[3] = 222;
|
|
Packit |
14c646 |
is $f, Storable::freeze(\222);
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
$f = undef;
|
|
Packit |
14c646 |
$h{foo} = 333;
|
|
Packit |
14c646 |
is $f, Storable::freeze(\333);
|
|
Packit |
14c646 |
|
|
Packit |
14c646 |
1;
|