• ベストアンサー

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__

質問者が選んだベストアンサー

  • ベストアンサー
  • estea
  • ベストアンサー率44% (39/87)
回答No.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)
回答No.2

・リスト ($a,$b) = &test; sub test { ~略~ return ($cc,$s); } ・配列 @get = &test; sub test { ~略~ return @return; } ところで「Perlで Right関数に近い処理をさせたいのですが、何か良い方法は無いでしょうか?」に対しての返答・お礼はしないのですか?(回答してくれた方に対して失礼ですよ)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

リスト形式でリターンしてみては。 sub test{ local $cc = ''; local $s = ''; $cc = 'AAAAA'; $s = 20; # return ($cc, $s); } ($a, $b) = &test();

関連するQ&A

専門家に質問してみよう