perl+;在参数中设置值
在下面的示例脚本中,我尝试打印参数[1]的内容。 我的问题是如何同时打印FLORIDA word(就地$VAL) 所以我会得到佛罗里达州的打印输出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
#!/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是一种可怕的安全风险。