• ベストアンサー

perlのリストと配列の違いについて

Perlの本を読んでいたらリストというのがでてきました。 読んでいてもリストと配列の違いがよくわかりません。 リストと配列はどう違っていてどのように使いわけるのでしょうか?

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • Wap58
  • ベストアンサー率33% (29/87)
回答No.1

多用な要素を保持しながら渡すなら参照を使います 配列やハッシュは均一な並び(リスト)で渡されます 説明小難しいけど、これでわかりますか $ref = [('~'x10),{'a'=>'x','b'=>'z'}, ((localtime(time))[4]+1) ]; @hai = (('+'x10),('a'=>'x','b'=>'z'), ((localtime(time))[3]) ); name_1( @hai,$ref ); sub name_1{ my($H1,$H2,$H3,$H4,$H5,$H6,$refe) = @_; print<<EOF; $H1 $H2 $H3 $H4 $H5 $refe->[1]{a} $refe->[1]{b} $refe->[0] $refe->[2]/$H6 EOF }

Kasaoka-Taroh
質問者

お礼

確かにちょっとややこしい感じですね。 なんとなくはわかった気がします。 ありがとうございました。

関連するQ&A

  • perlの配列追加について

    perlの配列の扱いについて質問です。 例えば、10個ほどの要素がある配列があるとして新しい要素を配列の任意の場所に追加する方法ってsplice関数を使うのが普通なのでしょうか? 本を参考にsplice関数を使ってみたら任意の場所に上書きのようになってしまいました(単に自分のやり方が悪いだけかもしれませんが)。 perlで簡単に配列の任意の場所へ、上書きではなく追加する方法をどなたか教えてください。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 【Perl】サブルーチンから多次元配列を戻したい

    【Perl】サブルーチンから多次元配列を戻したい サブルーチン内で作った2次元配列と1つの変数(例:@listと$i)をリターンしたいのですが、どのようにすれば良いでしょうか? ↓サブルーチン(calc) return (@list, $i); ↓メイン my $a = 12; my (@list, $i) = &calc($a); 間違っていると思いますが、現時点でのプログラムを一部書きました。 ご回答よろしくお願いします!

    • ベストアンサー
    • Perl
  • Perlで二次配列は可能?

    毎度御世話になっております。 Perlスクリプトで二次配列のような配列の使い方は可能でしょうか? (A*B)種類の変数を配列の形で操作したいと考えています。 A,B共に8~256ぐらいで、処理の途中で増やせる様にしたいのです。 連想配列を用いればそれらしいことが出来るのではないかと思ったのですが、 うまく行きません。どうかお知恵を御貸し下さい。

    • ベストアンサー
    • Perl
  • 連想配列の配列の使い方

    C言語でいうところの構造体の配列(要素は"hoge"と"fuga"のみ)を perlで表現する場合、連想配列の配列にするのが一般的でしょうか? 以下の様なソースコードなのですが、perlらしさが失われている気がします。 perlらしく書くとしたらどう書くのが良いでしょうか? [ソース] @list; #この配列の要素に連想配列を入れる sub input{ #list.txtの中にはhogeとfugaの値がカンマ区切りで記入されている open(IN, "list.txt");  $i = 0; while ($xx = <IN>) { ($list[$i]{"hoge"}, $list[$i]{"fuga"}) = split /,/, $xx; $i++; } close(IN); } sub output{ for($i = 0; $i <= $#list; $i++){ print $list[$i]{"hoge"}, $list[$i]{"fuga"}; } }

    • ベストアンサー
    • Perl
  • Perlの配列をJavaScriptに渡せますか

    Perlの配列を引数としてJavaScriptに渡したいのですが 出来ますか、 出来る場合のコードの書き方をお願いします。

  • (STL) vectorとlistの違い

    vectorとlistの違いって何なんでしょうか。 vectorは動的な配列の確保で listも動的な配列だけど双方向探索やソートもできる、 つまりlistはvectorの機能を含む拡張版みたいなもの、こう考えてよろしいのでしょうか? いまいちvectorとlistが同じようなものに見えて仕方ないのです・・。

  • Perl 配列に関しての質問です

    @a=("a","b","c"); リスト("a","b","c")を配列@aに代入する。 print $a[0]; 添え字が0ということはリストの中の1番目を表しそれを表示する。 としてみたのですが、@aを配列と呼べるのでしょうか、aのみを配列と呼ぶのでしょうか。 又、下部の訳はあっていますでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • perlで配列の要素が空なのを知るには?

    教えてください。 例えば、perlの次の様な要素が3つある配列で、 @t = ('A',,'C'); 2要素目が空で有ることを判別したいのですが、どうしたら良いでしょうか?

    • ベストアンサー
    • Perl
  • perlでの三次元配列の作り方

    perlで三次元配列をテキスト入力から作りたいのですが、例えば二次元配列の場合 foreach $line (@input) push @data, [split /[:]/, $line]; で@dataが二次元配列になるのですが、三次元配列の場合このあとに push @output, \@data; とするとリファレンスが同じであるためループをまわしてもうまく三次元になりませんよね。 解決法はありますでしょうか?

  • Perl 配列の質問です

    @a=("One","Two","Three"); リスト("One","Two","Three")を配列@aに代入する。 $a[0]=1; 配列の要素$a[0] 上記は配列の要素でいいのでしょうか、もしくは変数$a[0]ということになるのでしょうか。

    • ベストアンサー
    • Perl

専門家に質問してみよう