my @track = (); my %demo = (); while(my @data = $sth->fetchrow_array()) { for( my $x = 0; $x < $#data ; $x++ ) { if( $data[$x] ne $track[$x] ) { print "\t" x $x; print "$data[$x]\n"; } @track = @data; } push( @{$demo{ $data[0] }{ $data[1] }{ $data[2] } .... = $data[width]; }