O'Reilly logo

Perl Cookbook by Nathan Torkington, Tom Christiansen

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Program: hrefsub

hrefsub makes substitutions in HTML files, so that the changes only apply to the text in HREF fields of <A HREF="..." > tags. For instance, if you had the scooby.html file from the previous example, and you’ve moved shergold.html to be cards.html, you need simply say:

% hrefsub shergold.html cards.html scooby.html

               <HTML><HEAD><TITLE>Hi!</TITLE></HEAD><BODY>
            
               <H1>Welcome to Scooby World!</H1>
            
               I have <A HREF="pictures.html" >pictures</A> of the crazy dog
            
               himself.  Here's one!<P>
            
               <IMG SRC="scooby.jpg" ALT="Good doggy!"><P>
            
               <BLINK>He's my hero!</BLINK>  I would like to meet him some day,
            
               and get my picture taken with him.<P>
            
               P.S. I am deathly ill.  <a href="cards.html" >Please send
            
               cards</A>.
            
               </BODY></HTML>

The HTML::Filter manual page has a BUGS section that says:

Comments in declarations are removed from the declarations and then inserted as separate comments after the declaration. If you turn on strict_comment(), then comments with embedded "-\|-" are split into multiple comments.

This version of hrefsub will always lowercase the <a> and the attribute names within this tag when substitution occurs. If $foo is a multiword string, then the text given to MyFilter->text may be broken such that these words do not come together; i.e., the substitution does not work. There should probably be a new option to HTML::Parser to make it not return text until the whole segment has been seen. Also, some people may not be happy with having their 8-bit Latin-1 characters replaced by ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required