use DBI; use List:Util; use Math::Complex; my %CLAUSES; sub next_clauseid { my $current_id = @_; foreach my $id ( keys %CLAUSES ) { if ( $CLAUSES{ $id }{ lineno } == $CLAUSES{ $current_id }{ lineno } and $CLAUSES{ $id }{ clauseno } == ($CLAUSES{ $current_id }{ clauseno } + 1) ) { return $id; } } return 0; }