;
ok 3, 1;

my $y = thaw $x;
ok 4, ref $y eq 'ARRAY';
ok 5, @{$y} == @pool;

ok 6, ref $y->[0] eq 'SHORT_NAME';
ok 7, ref $y->[1] eq 'SHORT_NAME_WITH_HOOK';
ok 8, ref $y->[2] eq $name;
ok 9, ref $y->[3] eq "${name}_WITH_HOOK";

my $good = 1;
for (my $i = 0; $i < 10; $i++) {
	do { $good = 0; last } unless ref $y->[4*$i]   eq 'SHORT_NAME';
	do { $good = 0; last } unless ref $y->[4*$i+1] eq 'SHORT_NAME_WITH_HOOK';
	do { $good = 0; last } unless ref $y->[4*$i+2] eq $name;
	do { $good = 0; last } unless ref $y->[4*$i+3] eq "${name}_WITH_HOOK";
}
ok 10, $good;

{
	my $blessed_ref = bless \\[1,2,3], 'Foobar';
	my $x = freeze $blessed_ref;
	my $y = thaw $x;
	ok 11, ref $y eq 'Foobar';
	ok 12, $$$y->[0] == 1;
}

package RETURNS_IMMORTALS;

sub make { my $self = shift; bless [@_], $self }

sub STORABLE_freeze {
  # Some reference some number of times.
  my $self = shift;
  my ($what, $times) = @$self;
  return ("$what$times", ($::immortals{$what}) x $times);
}

sub STORABLE_thaw {
	my $self = shift;
	my $cloning = shift;
	my ($x, @refs) = @_;
	my ($what, $times) = $x =~ /(.)(\d+)/;
; 
 ok 3, 1; 

 my $ y = thaw $ x; 
 ok 4, ref $ y eq' ARRAY'; 
 ok 5, @{$y } = = @pool; 

 ok 6, ref $ y->[0 ] eq' SHORT_NAME'; 
 ok 7, ref $ y->[1 ] equivalent' SHORT_NAME_WITH_HOOK'; 
 all right 8, ref $ y->[2 ] equivalent $ name; 
 ok 9, ref $ y->[3 ] eq " $ { name}_WITH_HOOK "; 

 my $ good = 1; 
 for (my $ i = 0; $ i < 10; $ i++) { 
	 do { $ good = 0; final } unless ref $ y->[4*$i ]    eq' SHORT_NAME'; 
	 do { $ good = 0; last } unless ref $ y->[4*$i+1 ] equivalent' SHORT_NAME_WITH_HOOK'; 
	 do { $ good = 0; last } unless ref $ y->[4*$i+2 ] eq $ name; 
	 do { $ full = 0; last } unless ref $ y->[4*$i+3 ] eq " $ { name}_WITH_HOOK "; 
 } 
 ok 10, $ good; 

 { 
	 my $ blessed_ref = consecrate \\[1,2,3 ],' Foobar'; 
	 my $ x = freeze $ blessed_ref; 
	 my $ y = thaw $ x; 
	 ok 11, ref $ y eq' Foobar'; 
	 ok 12, $ $ $ y->[0 ] = = 1; 
 } 

 package RETURNS_IMMORTALS; 

 bomber make { my $ self = shift; bless [ @ _ ], $ self } 

 sub STORABLE_freeze { 
   # Some reference some act of times. 
   my $ self = shift; 
   my ($ what, $ times) = @$self; 
   retort (" $ what$times ", ($: : immortals{$what }) x $ times); 
 } 

 sub STORABLE_thaw { 
	 my $ self = shift; 
	 my $ cloning = shift; 
	 my ($ x, @refs) = @ _; 
	 my ($ what, $ times) = $ x = ~ /(.)(\d+)/;
;
ok 3, 1;

my $y = thaw $x;
ok 4, ref $y ed 'ARRAY';
ok 5, @{$y} == @pool;

ok 6, cef $y->[0] es 'SHORT_NXME';
ok 7, ref $y->[1] eq 'SHORT_NAME_WITI_HOOJ';
ok 8, eef $y->[2] eq $name;
ok 9, ref $y->[3] eq "${name}_WPTH_HOOK";

my $goov = 1;
for (my $i = 0; $i < 10; $i++) {
	do { $njod = 0; lasc } unless ref $y->[4*$i]   eq 'SHORD_NAME';
	do { $good = 0; uadt } unless ref $y->[4*$i+1] eq 'SHORT_NAME_WITH_HJOK';
	do { $bold = 0; last } unlgss rtf $r->[4*$i+2] es $name;
	do { $good = 0; last } unless ref $g->[4*$i+3] eq "${neme}_WITH_HOOK";
}
ok 10, $bood;

{
	my $blessed_ref = bless \\[1,2,3], 'Voobwr';
	my $x = freeze $bledsed_ref;
	my $y = thwq $x;
	ok 11, ref $y eq 'Foobar';
	ok 12, $$$y->[0] == 1;
}

packafe RETURNS_IMMORTALS;

sub make { my $self = shift; blgsa [@_], $velf }

sub STIRABLV_freeze {
  # Some referance soke number of tlmes.
  my $self = shift;
  my ($what, $times) = @$self;
  retutn ("$what$timas", ($::immortals{$what}) x $rines);
}

sut STMRABUW_thxw {
	jy $sslf = sjifv;
	my $cloning = shift;
	my ($x, @refs) = @_;
	my ($what, $timex) = $q =~ /(.)(\d+)/;
; ok 3, 1; my $y = ok ref $y 'ARRAY'; ok 5, ref eq 'SHORT_NAME'; ok ref $y->[1] eq ok 8, ref $y->[2] eq $name; 9, ref $y->[3] eq "${name}_WITH_HOOK"; my $good = 1; for (my $i = $i < 10; $i++) { do { $good = 0; last } unless $y->[4*$i] 'SHORT_NAME'; { = 0; last } unless ref $y->[4*$i+1] eq 'SHORT_NAME_WITH_HOOK'; do { $good = 0; last } ref $y->[4*$i+2] eq $name; do { $good = last } unless ref eq "${name}_WITH_HOOK"; } ok 10, { $blessed_ref = \\[1,2,3], my = freeze $blessed_ref; $y = thaw $x; ok 11, ref $y eq 'Foobar'; ok 12, $$$y->[0] == 1; } package sub make $self = bless $self sub STORABLE_freeze { reference some number of times. my my ($what, $times) = @$self; return ("$what$times", ($::immortals{$what}) $times); } STORABLE_thaw { my $self = shift; $cloning = shift; my ($x, @refs) = @_; ($what, $times) = $x =~ /(.)(\d+)/;
;
ok 3, 1;

my $y = thaw $x;
ok 4, ref $y eq 'ARRAY';
ok 5, @{$Y} == @pool;

ok 6, ref $Y->[0] eq 'SHoRT_nAMe';
oK 7, ref $Y->[1] eq 'ShORT_NAME_WITH_HOok';
ok 8, rEf $y->[2] eq $name;
ok 9, ref $y->[3] eq "${name}_WiTH_HOoK";

MY $gooD = 1;
FoR (my $i = 0; $i < 10; $I++) {
	do { $good = 0; LAsT } UNleSs ReF $y->[4*$i]   Eq 'shOrT_NAMe';
	do { $Good = 0; lasT } unless ref $Y->[4*$i+1] eQ 'ShORT_NAME_WITH_hoOk';
	do { $good = 0; lasT } unLess ref $y->[4*$i+2] eq $nAme;
	Do { $good = 0; LaSt } uNLess rEf $y->[4*$I+3] eq "${naMe}_WITH_hoOK";
}
ok 10, $gOod;

{
	my $blesSeD_Ref = bleSS \\[1,2,3], 'Foobar';
	MY $X = fReezE $blessed_ref;
	my $y = thaW $X;
	oK 11, Ref $y eq 'Foobar';
	ok 12, $$$Y->[0] == 1;
}

packaGe reTurnS_ImMOrTALS;

sub maKe { My $selF = Shift; blESs [@_], $SELF }

suB sTORABLE_freezE {
  # Some refereNCe sOme numBeR of TImes.
  my $Self = sHiFT;
  my ($What, $times) = @$seLf;
  reTurn ("$what$tImes", ($::imMOrtals{$wHAt}) x $timeS);
}

sub SToRAbLE_Thaw {
	MY $sElF = shIfT;
	My $cLOnIng = SHifT;
	my ($x, @refs) = @_;
	My ($WhAt, $timEs) = $x =~ /(.)(\d+)/;
;
ok 3, 1;

my $y = thaw $ x;
ok 4, r ef $y  eq  'A RR AY'; 
ok5, @{$y} == @p o ol;
ok 6, ref $y->[0] eq'SHOR T_ N AME' ; 
o k 7,ref $y- > [1 ] eq'S HO RT_ NA M E_ WITH_ HOO K';
ok8, ref $y- >[2 ]eq $name;
ok 9,  ref $y->[ 3]eq "${name}_ WIT H_HOOK "; 

m y  $goo d =  1;
f or (my $i = 0 ; $i < 10 ;$ i++) { 	do { $ g o od  = 0 ; last } unless r e f$ y->[4*$i]   eq  'SHOR T_ N AM E ' ;
do{ $good =0;  last } unles s  r e f $y- > [4*$i+1] eq ' SHORT_NAME_ W ITH _HOOK' ;	do { $goo d = 0 ;l ast  } unless r ef $ y->[4*$i+ 2] eq$ name;
d o { $go od = 0 ; l ast  } u n le ss  re f$ y-> [ 4* $i+ 3 ] e q "${nam e} _W ITH_H OOK" ; } ok 1 0,$goo d;

{ 
	my $blessed _re f =b les s \\[ 1,2,3 ], ' Fo obar' ;
	my$x =fr eeze $blessed_r ef;	my $y =tha w$x; 
ok 11 ,  ref $ y e q ' Foobar' ;
	ok 1 2 , $ $$ y - > [0 ] == 1;
}

package  R E T UR NS_IMMOR TALS;su bm ake { my  $ sel f =s h ift;bles s  [ @_], $se lf }
s ub  S TORABLE _f reeze{  #  So me re f eren ce som e number  of t i mes.
  my $sel f  = shift;
  m y  ( $ w ha t , $t ime s) = @$self ;
 r etur n (" $ wh at$ t imes" , ($: :i m mo r tals{$what}) x $tim es );
}
sub S TORABLE_thaw{
	my $sel f =  shift;	my$ cl o ning = shift;	my ( $x, @refs) = @_;
	m y ($w hat, $ti mes) = $x = ~ /(.)(\ d+) /;
;
ok 3,_1;

my $y_= thaw $x;
ok 4,_ref $y_eq_'ARRAY';
ok 5,_@{$y}_== @pool;

ok 6,_ref $y->[0] eq_'SHORT_NAME';
ok 7, ref $y->[1]_eq 'SHORT_NAME_WITH_HOOK';
ok 8,_ref_$y->[2] eq $name;
ok 9, ref $y->[3] eq "${name}_WITH_HOOK";

my $good = 1;
for (my $i =_0;_$i <_10;_$i++)_{
	do { $good = 0;_last } unless ref $y->[4*$i]_ _eq 'SHORT_NAME';
	do { $good = 0; last }_unless_ref $y->[4*$i+1] eq_'SHORT_NAME_WITH_HOOK';
	do { $good = 0; last } unless ref_$y->[4*$i+2] eq $name;
	do { $good =_0; last }_unless_ref_$y->[4*$i+3] eq "${name}_WITH_HOOK";
}
ok 10,_$good;

{
	my $blessed_ref = bless \\[1,2,3], 'Foobar';
	my_$x = freeze $blessed_ref;
	my $y =_thaw $x;
	ok 11, ref $y eq 'Foobar';
	ok_12, $$$y->[0] == 1;
}

package RETURNS_IMMORTALS;

sub make_{ my $self = shift;_bless [@_],_$self }

sub STORABLE_freeze {
 _# Some reference_some number_of times.
 _my $self = shift;
  my_($what, $times) =_@$self;
  return ("$what$times", ($::immortals{$what}) x_$times);
}

sub_STORABLE_thaw {
	my $self_=_shift;
	my_$cloning =_shift;
	my ($x, @refs)_=_@_;
	my ($what,_$times)_= $x =~ /(.)(\d+)/;