G'day Joseph,

There are a number of ways in which that diagnostic message could be generated and the cause can be difficult to track down. Take a look at perldiag and search for "Modification of a read-only value attempted": it describes a number of subtle ways in which you might be attempting this modification that are not immediately obvious. Now look at your code, around the line number of the error, for something that's similar to what's described.

I also note that your string uses interpolating double-quotes. Perl is not seeing what you perhaps think it's seeing. Using a cut-down version of what you posted:

$ perl -E 'my $x = "...-L^\^\+~p...M-^@iM-^OM...M-\E+^W...M-\HJ..."; s +ay $x' ...-L^^+~p...M-^-^OM...M-+^W...M-HJ...

If you use the strict and warnings pragmata, Perl will tell you about these types of problems. With the same cut-down string, here's a selection:

$ perl -Mstrict -Mwarnings -E 'my $x = "...-L^\^\+~p...M-^@iM-^OM...M- +\E+^W...M-\HJ..."; say $x' Possible unintended interpolation of @iM in string at -e line 1. Useless use of \E at -e line 1. Unrecognized escape \H passed through at -e line 1. Global symbol "@iM" requires explicit package name (did you forget to +declare "my @iM"?) at -e line 1. Execution of -e aborted due to compilation errors.

— Ken


In reply to Re: Modification of a read-only value attempted by kcott
in thread Modification of a read-only value attempted by josthi

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.