カレッヂ |
質問者 宇宙のステルヴィア
投稿日 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裏技 |