Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Text files

by dingus (Friar)
on Dec 04, 2002 at 08:13 UTC ( [id://217431]=note: print w/replies, xml ) Need Help??


in reply to Text files

This little snippet will do what you want

You may want to look at File::Find (see Beginners guide to File::Find) for a more elegant way to do this. And there is probably a better way to search for things in the file, such as slurping the whole thing into a single variable.

use File::DosGlob; my $root = '/some/where/interesting/*'; # don't forget the *! my $name = 'Smith'; # what you are searhcing for my @m = File::DosGlob::doglob(1,$root); for $fn (@m) { if -d($fn) { push @m, File::DosGlob::doglob(1,$fn.'/*'); next; } # uncomment to only search .txt files # next unless ($fn=~/\.txt$/); open (FILE,$fn) or warn "unable to search file $fn because $!\n"; while (<FILE>) { next unless (index($_,$name) >=0); # you could use a regex here print "$fn: $_"; last; # unless you want all occurences } close(FILE); }

Dingus


Enter any 47-digit prime number to continue.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://217431]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2024-04-19 17:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found