Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/share/doc/libhtml-parser-perl/examples/ |
#!/usr/bin/perl -w
# This script will output event information as it parses the HTML document.
# This gives the user a "Parser's eye view" of an HTML document.
use HTML::Parser ();
use Data::Dump ();
sub h {
my($event, $line, $column, $text, $tagname, $attr) = @_;
my @d = (uc(substr($event,0,1)) . " L$line C$column");
substr($text, 40) = "..." if length($text) > 40;
push(@d, $text);
push(@d, $tagname) if defined $tagname;
push(@d, $attr) if $attr;
print Data::Dump::dump(@d), "\n";
}
my $p = HTML::Parser->new(api_version => 3);
$p->handler(default => \&h, "event, line, column, text, tagname, attr");
$p->parse_file(@ARGV ? shift : *STDIN);