in reply to reading in different sizes of matrix

Well for a start you're not setting $line to anything.

Try something along these lines :-

while (my $line = <MOTIFS>) { chomp $line; ... }

It's worth reading the Basic Debugging Checklist - or how to find out what's going on when your code doesn't work.