Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Getting Filenames that contains a particular string recursively From a Directory

by BUU (Prior)
on Dec 06, 2005 at 10:29 UTC ( [id://514394]=note: print w/replies, xml ) Need Help??


in reply to Getting Filenames that contains a particular string recursively From a Directory

use File::Find to recurse through subdirectories, open to open files and readline to read lines from the file. Assuming your code isn't particularly obfuscated, you can almost certainly use sub\s+user_method to match your subroutine.
use File::Find; find( \&wanted, '.' ); sub wanted { open my $fh, $_ or die $!; local $/; my $file_contents = <$fh>; if( $file_contents =~ /sub\s+user_method/ ) { print "Matched $_!\n"; } }
Note that I undefined $/ so that my readline reads the entire contents of the file in to one variable. This is because your method declaration might contain an embedded new line. This method is slightly less efficient than reading line by line, but for something of this nature it hardly matters, as perl modules are rarely more than a couple of hundred kilobyes.


Update: Fixed my broken closing code tag.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (7)
As of 2024-04-23 08:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found