[vox-tech] Perl script help
David Hummel
vox-tech@lists.lugod.org
Wed, 24 Mar 2004 18:29:06 -0800
On Wed, Mar 24, 2004 at 03:32:58PM -0800, Richard Crawford wrote:
>
> This script is supposed to remove everything between <form and reset>.
> Yet, when I run it, it gives me this error:
>
> print() on closed filehandle THENEWFILE at boardclean.pl line 23.
> Cannot print!! Bad file number
>
> I cannot see my programming error. Can anyone help?
You're not recursing right?
> ======================================================
> #!/usr/local/bin/perl
>
> use strict;
>
> my $curdir = shift;
> my $file = "";
> my $tmprs = "";
> my $data = "";
>
> opendir(DIR, $curdir) or die "Cannot open directory $curdir: $!";
> while (defined ($file = readdir(DIR))) {
# skip directories and non-readable files
next if (-d $file || !(-r $file));
> open(THEFILE, "$file");
> $tmprs = $/;
> undef $/;
> $data=<THEFILE>;
> close(THEFILE);
> $/ = $tmprs;
> $data =~ s|<form.*reset>|<!-- form action removed -->|gm;
> open(THENEWFILE, ">$file");
> print THENEWFILE $data or die "Cannot print!! $!\n";
> close (THENEWFILE);
> }