use File::Find; my %titles; sub wanted { if( $_ =~ /\.html?$/) { my $name = $File::Find::name; open ( F, $name ) or die "$!: $name\n"; while($line = ) { if($line =~ /(.+)<\/title>/i) { $titles{$1} = " "; } } close F; } foreach my $key (keys %titles) { print "Title = $key\n"; } } find( \&wanted, "/unixpath/webfiles" );