我们可以将Perl脚本中使用的变量设置为环境变量吗?

Ash*_*rma 2 unix linux bash perl

我有一个Perl脚本,它有一个变量my $name.我们可以将$ name的内容设置为环境变量,我们可以在其他文件中导入和使用吗?

我尝试过$ENV{NAME}=name,但这不起作用.

Vij*_*jay 8

如果要影响进程或子进程的环境,只需使用%ENV哈希:

$ENV{CVSROOT}='<cvs>';
Run Code Online (Sandbox Code Playgroud)

如果您想影响父进程的环境,则不能.至少没有父进程的合作.标准进程是发出shell脚本并让父进程执行该shell脚本:

#!/usr/bin/perl -w
print 'export CVSROOT=<cvs>';
Run Code Online (Sandbox Code Playgroud)

...并从shell(脚本)调用该脚本:

eval `myscript.pl`
Run Code Online (Sandbox Code Playgroud)