use HTML::Entities qw( encode_entities ); sub text_to_ht_attr_val { my $s = @_ ? $_[0] : $_; $s = encode_entities($s); return qq{"$s"}; } sub text_to_js_lit { my $s = @_ ? $_[0] : $_; $s =~ s/\\/\\\\/g; $s =~ s/'/\\'/g; # ... return qq{'$s'}; } my $ht_to_insert = q{} . q{} . q{}; my $js_onclick = 'this.element.insert(' . text_to_js_lit($ht_to_insert) . ')'; my $ht_dyn_ele = ''; print( "$ht_dyn_ele\n" );