$sql_string = make_anded_statement ( username => $form_username, password => $form_password, name => $form_name ); sub make_anded_statement { my ( %args ) = @_; my @keys = keys %args; my $where_string = ''; my $ANDING = 0; foreach my $i ( 0 .. $#keys ) { if ( $args{$keys[$i]} ) { $where_string .= $keys[$i] . '=' . $args{$keys[$i]} . ' '; $ANDING = 1; } if ( $ANDING && $args{$keys[$i+1]} ) { $where_string .= 'AND '; } } return "SELECT FROM table WHERE $where_string"; }