in reply to storing variable names in an array

In addition to the hash-based solutions offered, there's also

my @file = qw( tom bob joe );
so instead of referring to, e.g., $file1, you'd refer to $file[0]. You can change the values of these variables programmatically, by maniplulating the integers corresponding to the array indices. This node has some interesting thoughts on the perennial desire to manipulate variable names programmatically.

the lowliest monk