#!/usr/bin/perl use warnings; use strict; use autodie; my %whole_pedigree; open( my $in, '<', 'wholepedigree_F.txt'); while ( my $line = <$in> ) { chomp $line; my ( $ID, $sire, $dam, $F, $FB, $AHC, $FA ) = split ( /\s+/, $line ); if ( $ID ) { $whole_pedigree{ $ID } = "$F\t$AHC"; } } close $in; open( my $look_for, '<', 'damF.txt' ); open( my $output, '>', 'output.txt' ); while ( my $line = <$look_for> ) { chomp $line; my ( $damID, $damF, $damAHC, $prog ) = split (/\s+/, $line); if ( $prog && $whole_pedigree{ $prog } ) { print $output join( "\t", $prog, $whole_pedigree{ $prog }, "$damID\t$damF\t$damAHC" ), "\n"; } } close $look_for; close $output; print "Done\n"; #### cat output.txt #### 3162 0 0 501093 0 0 3163 0 0 2958 0 0 3164 0 0 1895 0 0 3165 0 0 1382 0 0 3166 0 0 2869 0 0