7.4 傳回值

如果副程式的運算結果需要傳回,可以使用 return 將結果傳回給叫用者去接收:

例如: 

$max_num_is = max($x, $y);  # 這支程式叫用了 max 副程式,並用 $max_num_is 來接收傳回值。

但如果副程式中沒有明顯使用 return,則 Perl 將以最後一條敘述的執行結果,做為副程式的傳回值。

例如: 

sub max {
	my ($a, $b) = @_; # 取得傳入的二個引數

	($a > $b) ? $a : $b; # 傳回較大值
}

# 最後一個敘述的結果是較大的數,因為沒有 return 這個關鍵字,所以用該數傳回。

上式,其實等同於以下這個副程式:

sub max {
	my ($a, $b) = @_; # 取得傳入的二個引數

	my $max_num=($a > $b) ? $a : $b; # 傳回較大值

	return $max_num;
}

不過,這樣比較麻煩一點,多了一道步驟,但好處時,易於理解。