我需要将大写的系统变量传递给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
也欢迎替代方法/方法。
答案 0 :(得分:3)
从引号uc
中取出""
,因为perl认为您需要字母uc
:
FOO=abc perl -e 'print "." . uc($ENV{FOO}) . "_MAN\n"'
.ABC_MAN