perl:子例程

时间:2016-10-14 03:13:07

标签: perl

我需要将大写的系统变量传递给perl子例程。

例如,如果变量名为VARNAME(值'super'),我需要传递“SUPER_MAN”。 一般来说,如果我们使用'uc'选项,如下例所示,我们可以转换为大写

 perl -e 'print uc"$ENV{VARNAME}\n"'

但是当我们尝试在子例程中传递它时,我们需要在语法中包含uc函数并在运行时进行评估。为了效仿我在尝试下面但没有工作,我哪里出错?

perl -e 'print ".uc($ENV{VARNAME})_MAN\n"'
.uc(super)_MAN

也欢迎替代方法/方法。

1 个答案:

答案 0 :(得分:3)

从引号uc中取出"",因为perl认为您需要字母uc

FOO=abc perl -e 'print "." . uc($ENV{FOO}) . "_MAN\n"'
.ABC_MAN

perldoc perlop - Quote and Quote like Operators