Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: traverse directory recursively and search for pattern

by kielstirling (Scribe)
on Mar 20, 2013 at 04:28 UTC ( #1024430=note: print w/replies, xml ) Need Help??

in reply to traverse directory recursively and search for pattern

I do this like so. ;)
#!/usr/bin/perl use Modern::Perl; use autodie; my ($dir, $match) = @ARGV; die "directory does not exists $dir" unless -d $dir; die "No match" unless $match; open_readdir($dir, \&process); sub process { my ($dir, $file) = @_; if (-T "$dir/$file") { open my $fh, '<', "$dir/$file"; say "$dir/$file: $_" for grep /$match/, $fh->getlines; $fh->close; } } sub open_readdir { (my $dir = shift) =~ s/\/$//; my $code = shift; my $db; opendir $dh, $dir; my @files = grep !/^\./, readdir $dh; for my $file (@files) { if (-d "$dir/$file") { open_readdir("$dir/$file", \&process); } else { &$code($dir, $file); } } closedir($dh); }

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2016-10-25 10:55 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (317 votes). Check out past polls.