在打印功能中调用子程序

时间:2012-08-27 09:53:58

标签: perl

我有一个子程序:calcPercentage。我想打印此子例程返回的值。

我可以在一行中完成此操作,类似于:

print "Result is: $calcPercentage($a,$b)"

4 个答案:

答案 0 :(得分:8)

当然:print "Result is: ", calcPercentage($a, $b), "\n";

答案 1 :(得分:3)

执行此操作的最佳方法是将函数调用作为print的参数之一传递,正如其他答案所说的那样。

但是,如果由于某种原因,你希望函数调用的结果在字符串文字中扩展,因为"foo $bar"扩展了一个变量名,实际上有一种(相当难看)的方法:

print "Result is: @{[calcPercentage($a,$b)]}";

请参阅this question

同样,如果你只是使用print,这不是特别有用,因为print本身连接了它的参数。即使你没有使用print,最好只是自己连接参数:

$s = "Result is: " . calcPercentage($a, $b);

答案 2 :(得分:0)

我有时使用printf

执行此操作
printf "Result is: %.2f\n", calcPercentage($a, $b)

在样式注释上无关,perl中通常的命名约定是under_scores而不是camelCase,而$a$b是保留的变量名称;通常在示例中,最好使用免费的$x$y

答案 3 :(得分:-1)

> 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