use warnings; use strict; #### Bareword "DUMMYHUGO" not allowed while "strict subs" in use ... Bareword "DUMMY_GENEFILE" not allowed while "strict subs" in use... #### @hugo = DUMMYHUGO; @genes = DUMMY_GENEFILE; #### #!/usr/bin/env perl use warnings; use strict; my @hugos; open my $DUMMYHUGO, '<', 'DummyHugo.txt' or die "cannot open file containing HUGO IDs: $!\n"; while (<$DUMMYHUGO>) { my @hugo = split; push @hugos, [@hugo]; } close $DUMMYHUGO; my $outfile = 'HUGO_dummyResults.txt'; open my $OUT, '>', $outfile or die "cannot create the output file: $!\n"; open my $DUMMY_GENEFILE, '<', 'DummyGenes.txt' or die "cannot open file containing genes: $!\n"; while (<$DUMMY_GENEFILE>) { my @genes = split; for my $href (@hugos) { my @hugo = @{$href}; for (my $i = 5; $i < 9; $i++) { if ($genes[2] eq $hugo[$i]) { print $OUT "$genes[0]\t$genes[1]\t$genes[2]\t$genes[3]\t$hugo[1]\n"; } } } } close $DUMMY_GENEFILE; close $OUT; exit; #### ID1 Id2 Katie Path KJRJ ID1a Id2a Dave Path DJL ID1b Id2b Kean Path PKKJ ID1c Id2c Paul Path PKKJ ID1d Id2d Sandra Path SKJ