dポイントプレゼントキャンペーン実施中!

以下のように多重代入できるかと思って確かめましたが、
結果は以下の通りでした。
$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__

A 回答 (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;

------------------



あと、返答はしたほうがいいと思うでぇ。
そのまま放置プレイされるのもあんまり気持ちよくないし。
    • good
    • 0

・リスト



($a,$b) = &test;

sub test {

~略~

return ($cc,$s);
}

・配列

@get = &test;

sub test {

~略~

return @return;
}

ところで「Perlで Right関数に近い処理をさせたいのですが、何か良い方法は無いでしょうか?」に対しての返答・お礼はしないのですか?(回答してくれた方に対して失礼ですよ)
    • good
    • 0

リスト形式でリターンしてみては。



sub test{
local $cc = '';
local $s = '';
$cc = 'AAAAA';
$s = 20;
#
return ($cc, $s);
}
($a, $b) = &test();
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!