sub valid_record { my %field = @_ ; my $valid = 1 ; my $why = '' ; # Do some multi-field validation, e.g. if( $field{'colour'} eq 'blue' and $field{'make'} eq 'estate' ) { $valid = 0 ; # No blue estates available. $why = 'No blue estates available' ; } # etc. ( $valid, $why ) ; }