$a is definitely going beyond the end of @hfr. Use < instead of <= in the loop test to avoid this.
Oh, and don't use $a as a variable name. Nor $b for that matter.
Update: For some reason I had missed that Cristoforo had already mentioned this. Sorry for the waste of bandwidth.
In reply to Re^2: use of uninitialized value in array
by hippo
in thread use of uninitialized value in array
by rocketperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |