in reply to double quotes and single qoutes

As Basic debugging checklist teaches, use Deparse to see how perl compiles your program

You forgot to escape every $ which your shell tries to interpolate

Stick with single quotes, see

  • Comment on Re: double quotes and single qoutes (shell interpolation)

Replies are listed 'Best First'.
Re^2: double quotes and single qoutes (shell interpolation)
by Anonymous Monk on Mar 14, 2013 at 08:37 UTC

    thanks for your explanation , it worked after escaping every $, and i have one question , can you use the modules at command line as we did in this case perl -MO=Deparse -e "(\$hi)=glob(\"nosum*\"); print \"$hi\"" , if suppose i want to use Dumper module how can i use it.

      perl -MData::Dumper -e'print Dumper [1..3]'
      package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name

      Read perlrun search for "use module"

      Files are where it's at :) oneliners get unwieldy pretty quick  perl -le ' use Data::Dump; dd [6..9]; '

      OTOH, it could be as simple as perl -MToolkit -e ' dd \@INC '

      or even

      export PERL5OPT=-MData::Dump -CSD 
      perl  -e ' dd\%INC '