-
hisaichi5518
- 15859
- 2
- 53
- 5

@hisaichi5518 でもどうなんだろう。Perlで配列って言葉聞かない気がする。リストコンテキストって言葉があるからかな
2012-02-25 15:59:29
@hisaichi5518 @shiba_yu36 リストと配列(Array)はPerlでは別物だよ。リストはlisp由来。値の返し方のコンテキストがスカラとリストがある。ハッシュだって、値を返させるとリストを返すでしょう。
2012-02-25 20:36:33
@hisaichi5518 @shiba_yu36 my %hash;$hash{qw/1 2 3/} = 'hoge';say $hash{qw/1 2 3/};say Dumper \%hash; とかやると驚きの結果が。
2012-02-25 20:39:13
@hisaichi5518 @shiba_yu36 my $var = scalar (2,4,6,8);say $var; とかでも驚きの結果が。(4じゃないよ)
2012-02-25 20:41:39
本気で「えっ」って言ってしまった RT @songmu: @hisaichi5518 @shiba_yu36 my $var = scalar (2,4,6,8);say $var; とかでも驚きの結果が。(4じゃないよ)
2012-02-25 20:43:39
@hisaichi5518 そうだねー。配列とハッシュはリストを使って実装されていて、配列をスカラーコンテキストで評価すると配列数になるだけで、リストをスカラーコンテキストで評価すると違う結果になるということなのかな...
2012-02-26 01:06:35
@hisaichi5518 リスト自体がキーになっているらしいです。JSとかでイベント名にオブジェクトを突っ込めるみたいなもんです
2012-02-26 01:14:34
スカラコンテキストで要素数返すってのは、配列の特徴であってリストの特徴ではないってことですね。my $var = %hash;とかやるとまた奇妙な結果になるし。
2012-02-25 21:08:51
$hash{qw/hoge fuga/}だとリストをキーにした値の取り出しで、@hash{qw/hoge fuga/}だと、ハッシュスライスでキーがhogeとfugaの要素を列挙する。
2012-02-25 22:21:23
$hash{1,2}は 多次元配列のエミュレートとか言うらしい。awk由来でリファレンスが無かった頃のバッドノウハウ的な感じですな。 perldoc perldsc にその辺のことが書いてある。
2012-02-26 01:32:52
@shiba_yu36 @hisaichi5518 コンテキスト(値の返し方)にスカラとリストがあって、変数の型としてスカラ・配列・ハッシュ等があるってことですよ。混同してはいけない。
2012-02-26 01:24:46