我在 bash 脚本中有变量,我需要将其转移到 perl 中。我在 bash 脚本中声明了变量 $gal 和 $obsid,然后我调用了新程序。
gal=UCLA121
obsid=1896
./my_program
perl 脚本的开头加载带有短语的图像
$ph_im = "./$gal/img/${obsid}.img";
但新程序中的变量为 NULL。
我在 bash 脚本中有变量,我需要将其转移到 perl 中。我在 bash 脚本中声明了变量 $gal 和 $obsid,然后我调用了新程序。
gal=UCLA121
obsid=1896
./my_program
perl 脚本的开头加载带有短语的图像
$ph_im = "./$gal/img/${obsid}.img";
但新程序中的变量为 NULL。
可以通过导出变量来使 shell 脚本中的子进程可以使用变量
或者通过调用带有变量的程序
无论哪种情况,您都需要
ENV
在 perl 脚本中调用它们使用环境是一种更清洁的方式。
有开关:_
-s
如果你这样称呼它
您可以使用
@ARGV
. 例如示例来源。
这是一个老例子,所以它可能没有使用最新的样式。我目前没有设置 perl 编译器,所以我无法测试输出。
您可以使用
Data::Dumper
来帮助您调试事物。如果你这样称呼它
意识到你可能会得到奇怪的结果混合
@ARGV
和命名参数。您可能希望将调用方式更改为类似或者
另请注意,命名参数是
-gal
,而不是-$gal
。我不太确定$
它会在那里做什么,但它往往会做一些事情,而不是没有它会发生什么。请记住,
Data::Dumper
如果您得到令人困惑的结果,可以帮助您调试事物。