my $changed= 1; while( $changed ) { $changed= 0; ... for my $row (@table) { if( $main{ $row->[0] } ) { $changed= 1; # we still need to keep working }; }; };