in reply to Temporarily strip HTML

I believe this is what you're looking for.

Code:

#! /usr/bin/perl use strict ; use warnings ; use Data::Dumper ; my $str = qq~This <b>contains</b> both text and <a href="http://www.w3c.org">html</a>.~ ; print $str, "\n\n" ; # Do the replacement... my @tags = () ; my $index = -1 ; $str =~ s|<([^>]+)>(?{ push @tags, $1 ; $index++ })|<$index>|gs ; # Show the replaced text & the stored tags. print "-----\n", Dumper( \@tags ), "\n\n", $str, "\n\n" ; # Sub the tags back in. $index = -1 ; $str =~ s|<([^>]+)>(?{ $index++ })|<$tags[$index]>|gs ; # Show the string with the HTML put back in. print "-----\n", $str, "\n\n" ;

Output:

This <b>contains</b> both text and <a href="http://www.w3c.org">html</a>. ----- $VAR1 = [ 'b', '/b', 'a href="http://www.w3c.org"', '/a' ]; This <0>contains<1> both text and <2>html<3>. ----- This <b>contains</b> both text and <a href="http://www.w3c.org">html</a>.

Update: Argh. I was downtown about an hour after I posted this, and it suddenly occurred to me that the second substitution makes much more sense as:

# Sub the tags back in. $str =~ s|<(\d+)>|<$tags[$1]>|gs ;

_______________
D a m n D i r t y A p e
Home Node | Email