#! /usr/bin/perl -w -T use strict; # assuming 'foo' exists open( my $handle, '<', 'foo' ); my %hash = ( handle => $handle); # prints out GLOB(0x9d2cc28) while( <$hash{handle}> ) { print; } my %worse_yet = ( hash => \%hash ); # won't compile while( <$worse_yet{hash}->{handle}> ) { print; } # I tried *{$worse_yet{hash}->{handle}} and it didn't work either