如何在perl模块的子例程中传递shell脚本参数

时间:2015-03-10 12:02:39

标签: perl shell arguments subroutine

#!/bin/bash
export IPV6=$1
expanded_ipv6_addr=`perl -e 'require "/usr/bin/ipv6_helper.pm"; $expand_ipv6=expand_ipv6_addr($ENV{IPV6});print $expand_ipv6'`

我不想导出$IPV6变量,因此我正在寻找其他任何方法来执行此操作。

2 个答案:

答案 0 :(得分:2)

从@ARGV中获取值:

expanded_ipv6_addr=$(
  perl -e '
    require "/usr/bin/ipv6_helper.pm"; 
    print expand_ipv6_addr(shift)
  ' "$IPV6"
)

答案 1 :(得分:-1)

不是将$ 1导出到环境变量中,而是可以在以后再次使用它并转义perl代码。

以下版本的/usr/bin/ipv6_helper.pm

为我工作了
#!/bin/bash
IPV6=$1
expanded_ipv6_addri=`perl -e "
   require \"/usr/bin/ipv6_helper.pm\";
   \\$expand_ipv6 = expand_ipv6_addr($IPV6);
   print \\$expand_ipv6
"`