【Perl 】初心者コーナーPart5

このエントリーをはてなブックマークに追加
774名無し
サブルーチンについて勉強しています。

一つでは書き込めないため、三つに分けさせて頂きます。
ごめんなさい。

775のスクリプトで

return $result_x, $result_y;

この一行があると無いとでは結果が全く違います。
ここで問題にしたいのは$calc_value[0]と$calc_value[1]に入る値です。
この一行があってもなくても、いつでも
$calc_value[0] = $argument1(つまり10)
$calc_value[1] = $argument2(つまり1)
というわけではないのでしょうか?

また、776にある
my ($result_x, $result_y, $argument1, $argument2);
($argument1,$argument2) = @_;
この二行はそれぞれこのスクリプトの中でどういう役割を果たしているのでしょうか?

宜しくお願いします
775名無し:2001/07/06(金) 03:31 ID:YsXZOyrU
#!/usr/bin/perl -w

$argument1 = '10';
$argument2 = '1';

@calc_value = &return_value($argument1,$argument2);

print "$calc_value[0]\n";
print "$calc_value[1]\n";

sub return_value {


$result_x = $argument1 + $argument2;
$result_y = $argument1 + $result_x;

print "----サブルーチン始----\n";
print "\$result_x = $result_x\n";
print "\$result_y = $result_y\n";
print "\$argument1 = $argument1\n";
print "\$argument2 = $argument2\n";
print "----サブルーチン終----\n";

return $result_x, $result_y;

}
776名無し:2001/07/06(金) 03:32 ID:YsXZOyrU
#!/usr/bin/perl -w

$argument1 = '10';
$argument2 = '1';

@calc_value = &return_value($argument1,$argument2);

print "$calc_value[0]\n";
print "$calc_value[1]\n";

sub return_value {

my ($result_x, $result_y, $argument1, $argument2);

($argument1,$argument2) = @_;

$result_x = $argument1 + $argument2;
$result_y = $argument1 + $result_x;


return $result_x, $result_y;

}