我有一个哈希引用数组:
my @price = (
{
id => '1',
label => 5.00
},
{
id => '2',
label => 7.50
},
);
Run Code Online (Sandbox Code Playgroud)
我还有2个变量整数,$ diff和$ last.当我尝试迭代数组以将"标签"乘以$diff/$last:
foreach (@price) {
print "(($diff/$last)*$_->{label})\t";
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
((12/30)*5.00)
((12/30)*7.50)
Run Code Online (Sandbox Code Playgroud)
我假设它没有倍增,因为我有两个整数和一个哈希引用.如果这是正确的,我如何使哈希引用成为整数?如何强制Perl实际进行数学运算并打印最终产品?
它不会成倍增加,因为所有这些都在双引号内.你需要这样做:
print( (($diff/$last)*$_->{label}) . "\t" );
Run Code Online (Sandbox Code Playgroud)
你在perl上做的方式就是插入变量并打印它们的值,因为它们被包含在引号中.在*简单地视为一个字符打印.上面的数学然后.导致连接"\t"(将结果转换为字符串).
$a = 5;
$b = 6;
print "$a + $b\n";
print $a + $b . "\n";
Run Code Online (Sandbox Code Playgroud)
输出:
5 + 6
11