3

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

我可以在一行中执行此操作吗,类似于:

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

4 回答 4

9

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

于 2012-08-27T09:56:33.253 回答
3

print正如其他答案所说,最好的方法是将函数调用作为参数之一传递给。

但是,如果出于某种原因,您希望函数调用的结果在字符串文字内展开,就像"foo $bar"展开变量名一样,实际上有一种(相当丑陋的)方法可以做到这一点:

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

看到这个问题

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

$s = "Result is: " . calcPercentage($a, $b);
于 2012-08-27T10:13:16.003 回答
0

我有时会使用printf

printf "Result is: %.2f\n", calcPercentage($a, $b)

与风格无关,perl 中通常的命名约定under_scores不是camelCase$a$b是保留的变量名;通常在示例中最好使用$x并且$y是免费的。

于 2012-08-28T15:51:59.540 回答
-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
于 2012-08-27T10:00:37.213 回答