Timo Ballin: html in einem formular verbieten

Beitrag lesen

Sehr faszinierend dein bat-inline-perl-modul-script... aber ich weiss nicht, ich weiss nicht...

Nur mal so warum ich nicht weiss: Hier das beim Modul mitgelieferte beispiel das eine HTML Seite in text umwandeld:

use HTML::Parser 3.00 ();

my %inside;

sub tag
{
   my($tag, $num) = @_;
   $inside{$tag} += $num;
   print " ";  # not for all tags
}

sub text
{
    return if $inside{script} || $inside{style};
    print $_[0];
}

HTML::Parser->new(api_version => 3,
                  handlers    => [start => [&tag, "tagname, '+1'"],
                                  end   => [&tag, "tagname, '-1'"],
                                  text  => [&text, "dtext"],
                                 ],
                  marked_sections => 1,
        )->parse_file(shift) || die "Can't open file: $!\n";;

Was ich hier für Anfänger anmerken möchte ist die: )->parse_file(shift) || die "Can't open file: $!\n";;
Zeile. Shift nimmt in diesem fall das erste argument mit dem das Script aufgerufen wurde (von @_/@argv) (Is' mir furz egal ob sich jetzt jemand auf den Schlips getreten fühlt weil ihm das völlig klar ist... Diese implizite Parameter übergabe ist ein wichtiger Grund warum Leute Perl für cryptisch halten... und hat meiner Meinung nach in Beispielen nix zu suchen)

und in einem CGI Script würde man natürlich statt parse_file() parse( $string ) verwenden.