基于ARGV的变量选择

时间:2017-02-04 13:53:13

标签: perl variables argv

我有来自bash脚本的输入ARGV值(是)或(否)。 我需要(是)或(否)等于数值(1)或(0)和输出 基于该ARGV值作为数值。

我的尝试是让这样的东西起作用:script.pl yes&

my $VAR1=         $ARGV[0];
my $yes=1;
my $no=0;
print $VAR1;

打印输出为:1(不是单词是)

对不起我的例子显然很傻,因为$ VAR1显然是我用作ARG值的东西。所以我要做的就是拿一个ARGV并根据预设值列表进行检查,然后输出该预设的值。

谢谢,

**我是一个perl noob。如果我没有正确解释,请向我道歉。

1 个答案:

答案 0 :(得分:3)

所以你想根据另一个值查找一个值。为此,哈希通常是使用的工具。

my %yes_no_to_bool = (
   yes => 1,
   no  => 0,
);

@ARGV == 1
   or die("usage\n");

my ($arg) = @ARGV;

exists($yes_no_to_bool{$arg})
   or die("usage\n");

my $bool = $yes_no_to_bool{$arg};