sub get_asp_blocks { my($file) = @_; open(FILE, $file) or die "can't open '$file': $!\n"; my @blocks = ( ["HTM", ""] ); my $state = "HTM"; my $last; while(read(FILE, $char, 1)) { if($last eq "<" && $char eq "%" && $state eq "HTM") { chop $blocks[-1][1]; $state = "ASP"; push(@blocks, ["ASP", ""]); } elsif($last eq "%" && $char eq ">" && $state eq "ASP") { chop $blocks[-1][1]; $state = "HTM"; push(@blocks, ["HTM", ""]); } else { $blocks[-1][1] .= $char; } $last = $char; } close(FILE); return @blocks; }