Hello dear esteemed monks,

I have just implemented the following logic in a pet project:

Say we have a user-supplied string, which we may want to escape. Let's pack it into an object (bless \$str, $class; in fact) which has serialization methods as_is(), as_html(), as_uri(), as_shell() etc and, last but not least, as_string() (aka overloaded "") which chooses one of the above based on exported package variable $how_to_escape.

This way, we don't need to babysit a potentially unsafe value, but can still get it as is when needed (say save to database or send via JSON). The $how_to_escape var may be localized, meaning that we'll get guaranteed uniform escape of ALL such packed variables in a given scope without affecting anyone outside.

I would like to know if such approach makes any sense at all, and if it does, do similar modules already exist?

Thank you.


In reply to Packing unsafe string for later context-based escaping by Dallaylaen

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.