in reply to Re^2: Working with a unkown number of arrays
in thread Working with a unkown number of arrays

Regarding the open(), at the price of backward compatibility with 5.6, I use lexical filehandles instead of barewords:

Lexical handles (and 3-arg open) work fine in 5.6.

>c:\progs\perl560\bin\perl script.pl open(my $data, '<', $0) or die; print while <$data>;

Lexical handles were introduced in 5.6, so you are sacrificing backwards compatibility wih 5.5 (5.005).

What was introduced in 5.8 is file handles to variables (open(my $fh, '<', \$buf)).