my $iter = File::Next->new( $dir ); my $done = 0; while ( !$done && my $file = $iter->() ) { # do stuff }