【Perl 】初心者コーナーPart5

このエントリーをはてなブックマークに追加
778名無しさん@お腹いっぱい。
>>774-776

# 775
> $calc_value[0] = $argument1(つまり10)
> $calc_value[1] = $argument2(つまり1)
> というわけではないのでしょうか?
まず、returnしている変数が$result_x,$result_yなのでお望みの結果にはなりません。
常に10,1でいいなら
return($argument1, $argument2);
としてやればいいでしょうね。
# ただ、こんなことやってもこのサブルーチンの存在している意味がないですけど。
ちなみに、サブルーチンに明示的にreturnを指定していない場合は
一番最後に評価された値が戻ります。
@calc_value = (1,undef); という結果になるかと。

# 776
まず、レキシカル変数について勉強しましょう。
グローバル特殊配列@_には、サブルーチンに引き渡された変数が格納されています。
> my ($result_x, $result_y, $argument1, $argument2);
> ($argument1,$argument2) = @_;
まず、4つの変数をレキシカルスコープ宣言した後に、
変数を代入しているわけです。
# 説明下手ですいません。