in reply to Re: Interpolation in a hash key
in thread Interpolation in a hash key

Right, the bits in HERE docs, work fine as shown:
print<<"CONNECTION2"; <td width="78" align="center" valign="middle">$$hashRecordPtr{"connect +ion2_size$count"}</td> CONNECTION2

But its just these bits now:(just a standard double quoted print statement)
print "<td width=\"78\" align=\"center\" valign=\"middle\">$$hashRecordPtr{'part_number1'}</td>"; Any ideas on this last bit?

Nearly there, thanks guys.

Replies are listed 'Best First'.
Re^3: Interpolation in a hash key
by ptum (Priest) on Jun 13, 2006 at 16:34 UTC

    So, in this last case, you've got a double-quoted string with a single-quoted substring. Interpolation rules indicate that a variable name inside the overall double-quoted string will still be resolved, so this should work (although it makes me nervous with all those backslashed double-quote characters):

    print "<td width=\"78\" align=\"center\" valign=\"middle\">$$hashRecor +dPtr{'part_number${count}'}</td>";

    Of course, I could be wrong -- you should try it out. :) When in doubt, I use the curly braces, because I think it makes it more readable and it has saved my bacon once or twice.


    No good deed goes unpunished. -- (attributed to) Oscar Wilde
      This doesn't work ptum, at least not for me
      I'll just put it in a HERE doc for now until I figure it out.

        Make life easy for yourself. Use qq() instead of your outer double quotes.

        my $hashRecordPtr = { part_number1 => 1 }; my $count = 1; print qq(<td width="78" align="center" valign="middle">$$hashRecordPtr +{"part_number${count}"}</td>);
        --
        <http://dave.org.uk>

        "The first rule of Perl club is you do not talk about Perl club."
        -- Chip Salzenberg