在Bash脚本中访问perl模块

时间:2014-05-15 16:15:59

标签: perl bash

我有一个带有数据定义(散列,数组等)的perl模块,有什么方法可以从bash脚本中访问这些数据?这对我不起作用......

#!/bin/bash

perl -e 'use Data'
tests=`perl -e "@tests"; `
echo "Perl tests = ${tests}"         # prints "Perl tests = "

模块看起来像这样:

our @EXPORT_OK = qw( @tests );
our @tests = qw( 1 2 3 4 5 );

2 个答案:

答案 0 :(得分:3)

如果@tests模块中有包变量Data

perl -MData -e 'print "$_\n" for @Data::tests'

对于perl 5.10及以上版本,

perl -MData -E 'say for @Data::tests'

答案 1 :(得分:0)

您可以使用命令行中的模块-M

perl -MData -e'print map {"$_\n"} @tests;'

在您提供的代码中,您运行一个加载数据的解释器。它退出了。然后运行第二个解释器,打印@tests。由于这是第二个翻译所执行的唯一动作,它未被初始化,并且没有打印任何内容。