# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-my ( $run_time_beg, $run_time_end, $options, $in, $out, @keys, $key, @sort_cmd, $sort_str, $sort_sub, @records, $record, $i );
+my ( $run_time_beg, $run_time_end, $options, $in, $out, @keys, $key, @sort_cmd, $sort_str, $sort_sub, @records, $record, $i, $ok );
$options = Maasha::Biopieces::parse_options(
[
$sort_str = join " or ", @sort_cmd;
$sort_sub = eval "sub { $sort_str }"; # NB security issue!
-while ( $record = Maasha::Biopieces::get_record( $in ) ) {
- push @records, $record;
+while ( $record = Maasha::Biopieces::get_record( $in ) )
+{
+ $ok = 1;
+ foreach $key ( @{ $options->{ "keys" } } )
+ {
+ if ( not exists $record->{ $key } )
+ {
+ $ok = 0;
+ last;
+ }
+ }
+
+ push @records, $record if $ok;
}
@records = sort $sort_sub @records;