When are people going to learn about the < code> notation?
As best as I can tell, here is what it says:
$dir='C:/texts/';
opendir(directory,$dir) or die "cant";
while($file=readdir directory){
next if $file=~/^\./;
$rfname=$dir.$file;
# print "Found file: '$rfname'\n";
open (CONT, $rfname);
while (<CONT>){
if($_=~m/[0-3]?[0-9(th)?(st)?(nd)?(rd)?]\s+(Jan(uary)?|Feb(ruary)?
+|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(obe
+r)?|Nov(ember)?|Dec(ember)?)\s+[0-9]?[0-9]?[0-9][0-9]/ig){
print "$file\t $_\n";
}
elsif($_=~m/(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|
+Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\s+
+[1-3]?[0-9](th)?(nd)?(st)?(rd)?\s+[0-9]?[0-9]?[0-9][0-9]/ig){
print "$file\t $_\n";
}
}
Looking at your code, and another response,
I see your problem. You are telling it to print the
entire string.
If you have _Learning Perl_, by our own merlyn, look at 7.3.2.3, "Parentheses as memory".
Also, from _Programming Perl_:
A regular expression in parentheses, (...), matches whatever the regular expression (represented by ...) matches according to Rule 2. Parentheses
therefore serve as a grouping operator for quantification. Parentheses also have the side effect of remembering the matched substring for later use in a
backreference (to be discussed later). This side effect can be suppressed by using (?:...) instead, which has only the grouping semantics - it doesn't store
anything in $1, $2, and so on.
Look into spending $60 for the Perl CD Bookshelf. It rocks.
J. J. Horner
Linux, Perl, Apache, Stronghold, Unix
jhorner@knoxlug.org http://www.knoxlug.org/
|