in reply to assigning a perl variable in shell

Welcome to the monastery!

That's a ksh question, not Perl.

I suppose you need to escape the \$vars from shell interpolation before passing them.

But I won't test cause it's

Please see how (not) to ask a question

Cheers Rolf

PS: Je suis Charlie!

Replies are listed 'Best First'.
Re^2: assigning a perl variable in shell
by scheidr (Novice) on Jan 13, 2015 at 20:42 UTC

    Ya' know what guys? I figured it out.

    If you just put an escape character in front of $tombstone like so : \$tombstone, it works! It successfully masks the '$' to UNIX and Perl still picks it up and uses it. So My output ends up bing:

    mytree - Your 3 and 53 other things go here. basket , pizza

    Everything prints!

      > I figured it out.

      Great that you figured it out on your own!

      edit

      NB: This kind of code generation is prone to ugly bugs on the long run.

      You should really consider AnoMonks' suggestions to pass data either via @ARGV or %ENV.

      Cheers Rolf

      PS: Je suis Charlie!

      Sounds like the here document in the original Korn script was interpolating variables - I don't know ksh, but in bash you can stop it from doing that like so:

      #!/bin/bash cat <<END foo <$HOME> END cat <<'END' bar <$HOME> END ### Output: # foo </home/foobar> # bar <$HOME>

      That happens to be the equivalent behavior as Perl in regards to stopping interpolation in here documents. If you can, I'd strongly suggest always giving your scripts to perl this way - as LanX said, trying to get values into Perl via interpolation is going to end up being a pain, so use @ARGV (that would be my suggestion) or %ENV.