perl tips
sub first { print 'First' }
sub second {print 'Second'}
print (2, 3, first, second);
実行結果
FirstSecond2311
サブルーチンの戻り値が指定されていない場合は、最後に評価された値。
print 'First'の評価値voidであるため、関数の戻り値(1)が返る。
sub add
{
print "Sum : ", return ($_[0] + $_[1]);
}print add(1,2);
print (4+5) +1 , "\n";
実行結果
print (...) interpreted as function at ./tmp2.pl line 12.
Useless use of addition (+) in void context at ./tmp2.pl line 12.
Useless use of a constant in void context at ./tmp2.pl line 12.
39[%perl@perl]$
add関数のSum文字列が評価されないのは当たり前ですが、
1. print()の評価値voidに1を加えようとしている
2.最後の改行文字は単に無用の定数として切り捨てられる