in reply to using a variable name for a filehandle

Just to expand what poj said:
If you're storing handles in an array or hash, <...> you will have to use a block returning the filehandle value instead

Before:
print $introsh{$intro} $line;

After:
print {$introsh{$intro}} $line;