use File::Find; sub wanted { if( -f $_ = '*.htm* ) { open ( F, $_ ) or die $/, $/; while( defined( $line = ) ) { if($line =~ /(\w+)/i) { print "FILE = $_ and TITLE = $1\n"; } elsif( $line =~ /(.*$)<title>/i) { print "FILE = $_ and TITLE = $1\n"; } } close F; } } find( \&wanted, "." );