サブルーチンがあります: calcPercentage
. このサブルーチンによって返された値を出力したいと思います。
次のように、これを 1 行で実行できますか。
print "Result is: $calcPercentage($a,$b)"
サブルーチンがあります: calcPercentage
. このサブルーチンによって返された値を出力したいと思います。
次のように、これを 1 行で実行できますか。
print "Result is: $calcPercentage($a,$b)"
もちろん:print "Result is: ", calcPercentage($a, $b), "\n";
print
これを行う最善の方法は、他の回答が言うように、関数呼び出しを引数の 1 つとして渡すことです。
しかし、何らかの理由で、"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