sub rout { # Filename portion is in global $_ # Complete path is in global $name return unless /\.html?$/; local *FILE; open FILE, $name or die "Couldn't open $name for reading: $!"; while( my $line = ) { for my $hit ( $line =~ /%(ff|jj|bb)/g ) { print "Hit = $hit\n"; } } close FILE or die "Couldn't close $name after reading: $!"; } find( \&rout, "/disk1/disk2" );