- ベストアンサー
Perlで複数の値を返す良い方法はありますか?
以下のように多重代入できるかと思って確かめましたが、 結果は以下の通りでした。 $a=[] $b=[20] 方法はいろいろとありそうですが、Perl苦手でわかりません。 sub test{ local $cc = ''; local $s = ''; $cc = 'AAAAA'; $s = 20; # return $cc, $s; } $a, $b = &test; print "\$a=[$a]\n"; print "\$b=[$b]\n"; exit; __END__
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
リファレンスもアリ。 ------------ sub test{ my $cc = 'AAAAA'; my $s = 20; # return [$cc, $s]; } $a = &test; print "\$a=[$a->[0]]\n"; print "\$b=[$a->[1]]\n"; exit; ------------------ あと、返答はしたほうがいいと思うでぇ。 そのまま放置プレイされるのもあんまり気持ちよくないし。
その他の回答 (2)
- Ethersky
- ベストアンサー率71% (168/235)
・リスト ($a,$b) = &test; sub test { ~略~ return ($cc,$s); } ・配列 @get = &test; sub test { ~略~ return @return; } ところで「Perlで Right関数に近い処理をさせたいのですが、何か良い方法は無いでしょうか?」に対しての返答・お礼はしないのですか?(回答してくれた方に対して失礼ですよ)
- osamuy
- ベストアンサー率42% (1231/2878)
リスト形式でリターンしてみては。 sub test{ local $cc = ''; local $s = ''; $cc = 'AAAAA'; $s = 20; # return ($cc, $s); } ($a, $b) = &test();