[vox-tech] More Perl script help
Matt Roper
vox-tech@lists.lugod.org
Thu, 25 Mar 2004 11:05:33 -0800
On Thu, Mar 25, 2004 at 10:48:58AM -0800, Richard Crawford wrote:
> I apologize for breaking the threading.
>
> I've revised my Perl script as below, and also double-checked my file
> permissions so that the files it's working on are 777. However, when I
> run the script, the desired effect does not happen: the changes that
> should occur with the regexp do not happen, even though the timestamp on
> the files after I run the script show the time that I ran it.
>
> Any help would be greatly appreciated.
Do your files have the "<form" and the "reset>" on different lines? If
so, I think you need to add the 's' modifier to your regexp. I.e.,
change
> $data =~ s|<form.*reset>|<!-- form action removed -->|g;
to
$data =~ s|<form.*reset>|<!-- form action removed -->|gs;
The 's' modifier treats the entire string as a single line, which allows
'.' to match newline characters.
One other minor thing I noticed in your script is that I think the line
> opendir(DIR, $curdir) or die "Cannot open directory $curdir: $!";
should actually be
opendir(DIR, ".") or die "Cannot open directory $curdir: $!";
since you've already done a "chdir" to switch into that directory.
Hope this helps.
Matt
--
*************************************************
* Matt Roper <matt@mattrope.com> *
* http://www.mattrope.com *
* PGP Key: http://www.mattrope.com/mattrope.asc *
*************************************************