2010-08-22 56 views
-1

中的设置值通过以下示例脚本,我尝试打印参数[1]内容。 我的问题是如何同时打印FLORIDA字(到位$ VAL) 所以我会得到佛罗里达打印输出perl +参数

#!/usr/bin/perl 

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

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

print $parameter[1]; 

输出:

45487539 
       $VAL 
       5847366 
       83564566 
+0

单引号不提供插值。双引号。所有这些总结在一个方便的表格中:http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators。 – FMc 2010-08-22 14:46:12

+1

'我的$ VAL = FLORIDA;'不是上面的有效代码,除非你在某处声明了一个'FLORIDA'常量。 – Ether 2010-08-22 16:29:07

+0

'my $ VAL = FLORIDA'是有效的代码,除非使用'strict'(特别是'strict subs')。哦,你应该'严格使用'。 – mob 2010-08-23 04:20:29

回答

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

试试看。

1

答案是,以取代单引号“ '“带双引号”"“。 现在它会工作。

-3

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

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

对用户提供的数据使用eval是一种可怕的安全风险。 – Ether 2010-08-22 16:30:25