in reply to Re^2: print data with matching id from two different files
in thread print data with matching id from two different files

In that case the likely problem is here:

open FILE3, "< file3" or die; while (<FILE2>) {

As you can clearly see, you open FILE3 but try to read from FILE2 which is not opened. Running your code gives you this warning:

Name "main::FILE2" used only once: possible typo at 1202408.pl line 14.

which should have alerted you to this. Always address the warnings.