in reply to foreach interruption
If I were you, I would print the contents of @products to a log file before the loop, or at least the number of elements (print scalar @products) to verify that it contains what you think it contains.
I might also write your open code as:
... but I can't see where that will have a great effect.open(INF, $ref->{prodname) or die "Can't open $$ref{prodname}: $!"; print while <INF>; close INF;
|
|---|