in reply to matching problem
Apart from the bad format of the data section:
You declare $locus_acc_no, but you don't initialize it; therefor it stays undefined.
In your while-Loop you provide this undefined value as argument to ModuleMatching::MatchLAC() which tries a pattern matching against that value.
$locus_acc_no is intentionally undefined, so the warning is correct. You are using an undefined value within a pattern matching.
So, what exactly are you wondering about?
In Section
Seekers of Perl Wisdom