Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl+;在参数中设置值_Perl - Fatal编程技术网

perl+;在参数中设置值

perl+;在参数中设置值,perl,Perl,在下面的示例脚本中,我尝试打印参数[1]的内容。 我的问题是如何同时打印FLORIDA word(就地$VAL) 所以我会得到佛罗里达州的打印输出 #!/usr/bin/perl my @parameter = (); my $VAL=FLORIDA; $parameter[1]='45487539 $VAL 5847366 83564566'; print $parameter[1]; 输出: 4

在下面的示例脚本中,我尝试打印参数[1]的内容。 我的问题是如何同时打印FLORIDA word(就地$VAL) 所以我会得到佛罗里达州的打印输出

#!/usr/bin/perl

my @parameter = ();
my $VAL=FLORIDA;

$parameter[1]='45487539
               $VAL
               5847366
               83564566';

print $parameter[1];
输出:

45487539
               $VAL
               5847366
               83564566

答案是将单引号“
”替换为双引号“
”。 现在它可以工作了

$parameter[1]="45487539
               $VAL
               5847366
               83564566";

试试看。

如果需要从用户提供的数据中动态替换变量,请使用以下语法:

$parameters[1] =~ s/\$(\w+)\b/eval "return \$$1;"/ge;
print $parameters[1];

单引号不提供插值。双引号提供插值。所有这些都总结在一个方便的表格中:。
my$VAL=FLORIDA;
不是上面的有效代码,除非您在某处声明了
FLORIDA
常量。
my$VAL=FLORIDA
是有效代码,除非
strict
(特别是
strict subs
)哦,你应该
使用严格的
。对用户提供的数据使用eval是一种可怕的安全风险。