in reply to help with search and match

Use split on each line of input. So, it will look something like this:
while (my($name,$n1,$n2)=split(' ',<INFILE>) { # do something... }
Note that split with a pattern of a single space, as shown above, has a special meaning. Read about split in perlfunc.

Prep your file2 by reading the whole thing into an array.

open FILE, "< file2.txt" or die; my @file2= <FILE>; # read the whole thing close (FILE);
Now, use the grep function to check for matches against the array. Inside the "do something..." body of the loop above,
foreach my $hit (grep /^$name\w+/, @file2) { my($name_2,$n1_2,$n2_2)=split(' ',$hit); # same as you did before. print "Found $hit\n" if $n1 == $n1_2; }
That's untested, but should give you some ideas. This introduces some "Perl ways" without being too thick to understand for a novice.

Good luck.

—John