In addition to the bug pointed out by
toolic, I believe that there is a further bug in as much as it [your code] will merely result in a frequency report for the first line, not the whole file as you expect - the line
my @lines = <FILE>; won't slurp in the whole file, it'll merely result in only the first line i.e. all text up to the first end of line char, being read in, you need to
undef the line delimiter as in
Laurent_R's code i.e.
undef $/;.
HTH ,
A user level that continues to overstate my experience :-))