somefunc( *FH ); sub somefunc { my $fh = shift; # use it like a normal filehandle } #### opendir SOMEDIR, $directory or die "Can't open $directory: $!"; while ( defined ( my $file = readdir SOMEDIR ) ) { # do stuff with filename } closedir SOMEDIR;