#!/usr/bin/perl -- use strict; use warnings; use HTML::TreeBuilder::XPath; Main(@ARGV); exit(0); sub Main { my $html = ' 0 1 2 '; my $tree = HTML::TreeBuilder::XPath->new(); $tree->parse($html); local $\ = $/; print $_->as_HTML for $tree->findnodes('//img[not(@alt)]'); print '---'; print $_->as_HTML for $tree->findnodes('//img[not(string-length(@alt))]'); print '---'; $_->attr( alt => MAlt($_) ) for $tree->findnodes('//img[not(string-length(@alt))]'); print $_->as_HTML for $tree->findnodes('//img'); } ## end sub Main sub MAlt { '!' . $_[0]->attr('src') } __END__