#!/usr/local/bin/perl eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}' if 0; # not running under some shell use HTML::TreeBuilder; my $tree = HTML::TreeBuilder->new; if (@ARGV) { $tree->parse_file($ARGV[0]); } else { $tree->parse(\*STDIN); } output($tree); sub output { my @tags = @_; foreach my $tag (@tags) { if (ref($tag)) { print "(", $tag->tag, "\n"; my @attrs = $tag->all_attr(); while(@attrs) { my ($key, $val) = (shift(@attrs), shift(@attrs)); next if substr($key, 0, 1) eq '_'; print "A$key $val\n"; } output($tag->content_list); print ")", $tag->tag, "\n"; } else { $tag =~ s/\r?\n/\\n/g; print "-", $tag, "\n"; } } }