sub text_to_xml { my $s = shift; $s =~ s/]]>/]]>]]>"; } #### use HTML::Entities qw( encode_entities ); sub text_to_xml { return encode_entities($text, '<&'); } #### my %lkup = ( '<' => '<', # Not required. '>' => '>', '&' => '&', '"' => '"', # Only needed for double-quoted attr vals. "'" => ''', # Only needed for single-quoted attr vals. ); sub text_to_xml { my $s = shift; $s =~ s/([<&])/$lkup{$1}/g; return $s; } sub kv_to_attr { my ($k, $v) = @_; $s =~ s/([<&"])/$lkup{$1}/g; return qq{ $k="$v"}; }