The substitution is never happening, that's why. And there must
be something else you omitted, because as shown, your code
does not run because the $NETOBJ variable is not declared anywhere.
Removing the "use strict" makes it run, and running it with
the -w flag (always use -w and strict!) shows you the problem:
Name "main::NETOBJ" used only once: possible typo at t.pl line 6.
Use of uninitialized value in scalar dereference at t.pl line 6.
Use of uninitialized value in concatenation (.) at t.pl line 6.
Ok, here's what is happening:
- Because "$$NETOBJ.parameter" is in double quotes, Perl is
interpreting $NETOBJ as a variable, and trying to interpolate
its value. Because it doesn't have a value, you get an undef
value.
- Now, the first "$" in "$$NETOBJ" is also interpolated by
perl, trying to interpret it as a dereference to $NETOBJ (this
is, if $NETOBJ contained a reference to a scalar value, $$NETOBJ
would dereference it and give you the value). Because $NETOBJ
is undef, the dereferencing fails too, This produces the
"Use of uninitialized value in scalar dereference" error.
- At this point $a contains already ".parameter".
- The substitution is escaped correctly, therefore it looks for
the string '$$NETOBJ'. But that string is not there, therefore
the substitution doesn't happen, and you get ".parameter"
as your final result
The solution if you want the literal string '$$NETOBJ' in $a
is to use single quotes instead of double quotes. The single
quotes prevent interpolation. Like this:
$a='$$NETOBJ.parameter';
--ZZamboni
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.