Further to tybalt89's reply: The  s/// substitution operator can take arbitrary delmiters (within reason), so expressions like  s.misc04 in your code are confusing Perl. Don't do that.

c:\@Work\Perl\monks>perl -wMstrict -le "my $x = 'abXcd'; print qq{'$x'}; ;; $x =~ s.X.Y.; print qq{'$x'}; " 'abXcd' 'abYcd'
Please see discussion of  s/PATTERN/REPLACEMENT/ in Regexp Quote-Like Operators in perlop.

Update: If you do not have strictures enabled (see use strict;), expressions like  o.misc04 or  r.service will be meaningless to Perl (unless you happen to have functions named o() or service(), etc., defined). With strictures enabled, the expression won't compile. Enabling warnings (use warnings;) can be very helpful as well.

c:\@Work\Perl\monks>perl -le "my $hr = { 'o.misc04' => 'xxx' }; print qq/'$$hr{o.misc04}'/; " '' c:\@Work\Perl\monks>perl -le "use warnings; ;; my $hr = { 'o.misc04' => 'xxx' }; print qq/'$$hr{o.misc04}'/; " Unquoted string "o" may clash with future reserved word at -e line 1. Use of uninitialized value in concatenation (.) or string at -e line 1 +. '' c:\@Work\Perl\monks>perl -le "use warnings; use strict; ;; my $hr = { 'o.misc04' => 'xxx' }; print qq/'$$hr{o.misc04}'/; " Bareword "o" not allowed while "strict subs" in use at -e line 1. Bareword "misc04" not allowed while "strict subs" in use at -e line 1. Execution of -e aborted due to compilation errors.

Further Update: And I should have included one further code variation:

c:\@Work\Perl\monks>perl -le "use warnings; use strict; ;; my $hr = { 'o.misc04' => 'xxx' }; print qq/'$$hr{ 'o.misc04' }'/; " 'xxx'


Give a man a fish:  <%-{-{-{-<


In reply to Re: Substitution pattern not terminated by AnomalousMonk
in thread Substitution pattern not terminated by kp2a

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.