![]() |
| カレッヂ |
質問者 宇宙のステルヴィア
投稿日 2003/12/26(金) 22:52:38
サブルーチンって非常に便利ですよね。
サブルーチン名を呼び出せば何回も使いえるのですから。
でも、使っているうちにもっと使いこなしたくなり、
サブルーチンに対しての質問をさせていただきます。
サブルーチンを呼び出すとき値を渡す(引数)方法はわかるのですが、
例 &mike ('hoge1');
サブルーチン中にある値($変数)をインポートさせるにはどうすればよいのですか?
私の考え(予想)
&mike ($name);
どうか教えてください!
プロバイダ参照:http://www.mirai.comm.to/ |
回答者 ただのおっさん
[削除]
投稿日 2003/12/27(土) 18:58:39
#! /usr/local/bin/perl
$a = 'Perl';
$b = 100;
($c,$d) = test_sub($a,$b);
print "$a $b\n\n";
print "$c $d\n\n";
exit;
sub test_sub {
my ($l,$m) = @_;
$l = "$l Test Program";
$m = $m + 20;
return ($l,$m);
}
|
質問者 宇宙のステルヴィア
[削除]
投稿日 2003/12/28(日) 00:28:44
return ($l,$m); はサブツーチン内の値を返す関数ですよね。 ということは… ($c,$d) = &test_sub($a,$b); $l は $c に代入 $m は $b に代入 されているという事でしょうか? |
回答者 ただのおっさん
[削除]
投稿日 2003/12/28(日) 18:53:08
そう言うことです。
ちなみに、メインルーチンの変数などを、
複数のサブルーチンで利用する場合は、
リファレンスを使用すると良いかも。
↓を参照
#! /usr/local/bin/perl
$a = 'Perl'; $b = 100; $c = '';
print "$a $b $c\n\n";
$c = &test_sub(\$a,\$b); # \$a \$b は、$a $b のリファレンス
print "$a $b $c\n\n";
exit;
sub test_sub {
my ($l,$m) = @_; # $l $m は、メインルーチンから渡されたリファレンス
$$l = "$$l Test Program"; # $$l $$m は、リファレンスの示す場所。
$$m = $$m + 20; # ここでは、$a $b の内容になる。
return('OK');
}
|
質問者 宇宙のステルヴィア
[削除]
投稿日 2004/1/15(木) 11:09:55
参考になりました。 問題解決にご協力くださってありがとうございます。 |
このページは終了したので返信(回答)は書きこめません
| Web裏技 |