open my $h_data, "<", "file-1" or die $!; open my $h_id, "<", "file-2" or die $!; my $data = <$h_data>; my $id = <$id>; while (defined $data && defined $id) { no warnings 'numeric'; given ($data <=> $id) { when (-1) {$data = <$h_data>} when ( 0) {print $data; $data = <$h_data>; $id = <$h_id>;} when ( 1) {$id = <$h_id>;} } }