Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Tricky regexp

by wind (Priest)
on Jun 26, 2011 at 03:01 UTC ( #911427=note: print w/replies, xml ) Need Help??


in reply to Tricky regexp

Add error checking to your open statements. You are only referencing the filename and not the full path, so it can't find the file.

The following is how I'd clean up your script:

#!/usr/bin/perl #regexp.pl use File::Spec; use strict; use warnings; print "Gimme the address of the directory:\n"; chomp(my $folder = <>); print "What's the phrase you're looking for?\n"; chomp(my $find = <>); my @found; opendir my $dh, $folder or die "Can't open $folder: $!"; while (my $file = readdir($dh)) { next if $file =~ /^\.+$/; my $path = File::Spec->catfile($folder, $file); next if ! -f $path; open my $fh, $path or die "Can't open $path: $!"; my $data = do {local $/; <$fh>}; close $fh; if ($data =~ /\Q$find\E/i){ push @found, $file; } } close $dh; print "Your query was found in the following files:\n"; print "@found\n";

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (11)
As of 2016-09-27 17:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Extraterrestrials haven't visited the Earth yet because:







    Results (509 votes). Check out past polls.