#! /usr/bin/perl -w use strict; use warnings; my $source = shift @ARGV || die "usage: $0 source.html filtered.html"; my $dest = shift @ARGV || die "usage: $0 source.html filtered.html"; if (! -r $source) { die "$0: cannot read $source"; } if (-e $dest) { die "$0: file exists! $dest"; } open SOURCE, "<$source"; open DEST, ">$dest"; binmode(DEST); my $inscript = 0; my $startre = ']*>'; my $endre = ''; while (my $line = ) { while ($line =~ /$startre/) { $line =~ /^(.*?)$startre(.*)(\r?\n)$/; if ($inscript == 0) { print DEST "$1"; } $inscript++; $line = "$2$3"; } while ($line =~ /$endre/) { $line =~ /^(.*?)$endre(.*)(\r?\n)$/; if ($inscript <= 0) { warn "$0: something wrong"; } $inscript--; $line = "$2$3"; } if ($line && $inscript <= 0) { print DEST $line; } }