2012-06-17 20 views
6

Tengo una configuración de servidor de Bluehost y estoy tratando de establecer la ruta en mi programa PerlDefinición de la ruta en un programa Perl

print "Content-type: text/html\n\n"; 
    my $output=`export PATH=\${PATH}:/usr/local/jdk/bin`; 
    my output1=`echo \$PATH`; 
    print $output1; 

sin embargo, Stil imprime sólo el $ PATH original. El/usr/local/jdk no se agrega. ¿Alguien puede decirme qué estoy haciendo mal?

Respuesta

12

va a crear una concha, la ejecución de un comando shell que establece una variable de entorno en el shell, a continuación, salir de la cáscara sin hacer nada con la variable de entorno. Nunca ha cambiado el entorno de perl. Eso se haría usando

local $ENV{PATH} = "$ENV{PATH}:/usr/local/jdk/bin"; 

Sin embargo, es un poco raro de agregar al final del camino.

2

Tenga en cuenta que la respuesta de Ikegami sólo se configurará la ruta en su Perl script local, y no cambiaría por la cáscara que llamó su script Perl.

Si desea cambiar la ruta en el entorno de shell, por lo que los próximos programas que ejecuta también se beneficiarán de este cambio, tendrá que utilizar 'fuente' o secuencia "punto-espacio", o mejor aún - tener este cambio en la trayectoria de hecho en 'Bashrc' o 'archivos .login'.

+0

Okay. Lo intentaré también. – user1092042

+0

@ikegami, por favor lea mi respuesta otra vez - no está en contradicción con la suya. Como la pregunta no es clara al respecto, solo estaba enfatizando que el cambio solo ocurrirá en el contexto del guión Perl mismo, y no durará fuera del guión, una vez hecho, es decir, en el intérprete de comandos. – Gonen

Cuestiones relacionadas