my %seen; sub recursiveFollow { my $file = shift; return if $seen {$file} ++; ... }