--- nfo/perl/libs/Data/Mungle/Compare/Struct.pm 2002/12/13 21:47:04 1.3 +++ nfo/perl/libs/Data/Mungle/Compare/Struct.pm 2004/05/12 13:53:19 1.6 @@ -1,7 +1,17 @@ ## -------------------------------------------------------------------------------- -## $Id: Struct.pm,v 1.3 2002/12/13 21:47:04 joko Exp $ +## $Id: Struct.pm,v 1.6 2004/05/12 13:53:19 jonen Exp $ ## -------------------------------------------------------------------------------- ## $Log: Struct.pm,v $ +## Revision 1.6 2004/05/12 13:53:19 jonen +## + bugfix related to declaration of arrays, +## solved error: 'Bizarre copy of ARRAY in aassign at...' +## +## Revision 1.5 2003/03/27 15:17:05 joko +## namespace fixes for Data::Mungle::* +## +## Revision 1.4 2002/12/19 01:06:27 joko +## + fixed isEmpty with ARRAYs +## ## Revision 1.3 2002/12/13 21:47:04 joko ## + fixes to 'sub isEmpty' ## @@ -14,7 +24,7 @@ ## -------------------------------------------------------------------------------- -package Data::Compare::Struct; +package Data::Mungle::Compare::Struct; use strict; use warnings; @@ -35,7 +45,17 @@ my @a = @{$a_ref}; my @b = @{$b_ref}; - my @isect = my @diff = my @union = (); + # BUGFIX 2004-05-12: following declaration of arrays occures an strange perl error: + # 'Bizarre copy of ARRAY in aassign at ../ line ' + # (at PERL 5.8.4, Debian/unstable/experimental) + # + #my @isect = my @diff = my @union = (); + # + # so use normal declaration instead!! + my @isect = (); + my @diff = (); + my @union = (); + my $e; my %count; @@ -104,8 +124,10 @@ my $isReallyEmpty = ($#arr == -1 ? 1 : 0); return 1 if $isReallyEmpty; $found = 1; - foreach (@$var) { - return 0 if defined $_; + foreach (@arr) { + #return 0 if defined $_; + #return 1 if isEmpty($_); + return 0 if !isEmpty($_); } } elsif ($reftype eq 'HASH') { @@ -143,6 +165,8 @@ print "isEmpty could not parse variable ( ref $ref reftype $reftype )", "\n"; } + #print "EMPTY!!!", "\n"; + return 1; }