[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 *
*************************************************