http://qs321.pair.com?node_id=930666


in reply to Re^2: Convert Shell script to Perl
in thread Convert Shell script to Perl

This is the code:
use strict; use warnings; $ENV {'LIBDIR'}='$MY_XALANHOME/bin'; $ENV {'LOCALCLASSPATH'}='$ENV{LIBDIR}:/xalan.jar'; $ENV {'LOCALCLASSPATH'}='$ENV{LOCALCLASSPATH}:$ENV{LIBDIR}/xml-apis.ja +r'; $ENV {'LOCALCLASSPATH'}='$ENV{LOCALCLASSPATH}:$ENV{LIBDIR}/xercesImpl. +jar';
When I run the perl program from the command line using - perl abc.pl - I don't get any error messages. When I run the following command from the commandline:
perl $ENV{'LIBDIR'}='C:\SOMEFOLDER';
I get a message saying - can't open perl script "$ENV": no such file or directory. I would've expected to create a new environment variable called LIBDIR with the c:\somefolder as the value ? Thanks

Replies are listed 'Best First'.
Re^4: Convert Shell script to Perl
by Utilitarian (Vicar) on Oct 10, 2011 at 15:43 UTC
    Two things, you need to tell the Perl interpreter to execute the code rather than look for a file of that name and the environment variables will not be set int the parent process (your shell) only in the Perl process and its children.

    So while perl -e "$ENV{LIBDIR'}='C:\SOMEFOLDER';" would create the varable, it would cease to exist when Perl exited.

    print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."