我有一个子程序:calcPercentage
. 我想打印这个子程序返回的值。
我可以在一行中执行此操作吗,类似于:
print "Result is: $calcPercentage($a,$b)"
我有一个子程序:calcPercentage
. 我想打印这个子程序返回的值。
我可以在一行中执行此操作吗,类似于:
print "Result is: $calcPercentage($a,$b)"
当然:print "Result is: ", calcPercentage($a, $b), "\n";
print
正如其他答案所说,最好的方法是将函数调用作为参数之一传递给。
但是,如果出于某种原因,您希望函数调用的结果在字符串文字内展开,就像"foo $bar"
展开变量名一样,实际上有一种(相当丑陋的)方法可以做到这一点:
print "Result is: @{[calcPercentage($a,$b)]}";
看到这个问题。
同样,如果您只是使用print
,这并不是特别有用,因为print
它本身连接了它的参数。即使您不使用print
它也可能最好自己连接参数:
$s = "Result is: " . calcPercentage($a, $b);
我有时会使用printf
:
printf "Result is: %.2f\n", calcPercentage($a, $b)
与风格无关,perl 中通常的命名约定under_scores
不是camelCase
,$a
和$b
是保留的变量名;通常在示例中最好使用$x
并且$y
是免费的。
> cat hello.pl
#!/usr/bin/perl
sub hello_p
{
return "hello"
}
print "return value is ",hello_p,"\n";
执行如下:
> perl hello.pl
return value is hello