@data1 = ( 'one', 'won', [ 'two', 'too', 'to', \@data1 ] ); @data2 = @{$data1[2]}; #### @data1 = ( 'one', 'won', [ 'two', 'too', 'to', [] ] ); $data1[2][3] = \@data1; @data2 = @{$data1[2]}; #### package Refs { my $data1 = [qw[ one won ]]; my $data2 = [qw[ two too to ]]; push @$data2, $data1; push @$data1, $data2; open my $FH, '>', \ our $file; local $Data::Dumper::Varname = 'data'; local $Data::Dumper::Purity = 1; print {$FH} Data::Dumper::Dumper($data1, $data2); close $FH; Testing::recursive_data($data1, $data2); } package RefsBack { my ($data1, $data2); open my $FH, '<', \ $Refs::file; eval do { local $/; <$FH> }; Testing::recursive_data($data1, $data2); } #### $data1 = [ 'one', 'won', [ 'two', 'too', 'to', [] ] ]; $data1->[2][3] = $data1; $data2 = $data1->[2]; #### package Correct { my $string = '@data1 = ("one", "won", \@data2); @data2 = ( "two", "too", "to", \@data1);'; my (@data1, @data2); eval $string . ';1' or die $@; Testing::recursive_data(\@data1, \@data2); } #### ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,