ベストアンサー perlのリストと配列の違いについて 2016/12/16 14:53 Perlの本を読んでいたらリストというのがでてきました。 読んでいてもリストと配列の違いがよくわかりません。 リストと配列はどう違っていてどのように使いわけるのでしょうか? みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー Wap58 ベストアンサー率33% (29/87) 2017/01/06 22:21 回答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 } 質問者 お礼 2017/01/11 15:22 確かにちょっとややこしい感じですね。 なんとなくはわかった気がします。 ありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Perl 関連するQ&A perlの配列追加について perlの配列の扱いについて質問です。 例えば、10個ほどの要素がある配列があるとして新しい要素を配列の任意の場所に追加する方法ってsplice関数を使うのが普通なのでしょうか? 本を参考にsplice関数を使ってみたら任意の場所に上書きのようになってしまいました(単に自分のやり方が悪いだけかもしれませんが)。 perlで簡単に配列の任意の場所へ、上書きではなく追加する方法をどなたか教えてください。 宜しくお願い致します。 【Perl】サブルーチンから多次元配列を戻したい 【Perl】サブルーチンから多次元配列を戻したい サブルーチン内で作った2次元配列と1つの変数(例:@listと$i)をリターンしたいのですが、どのようにすれば良いでしょうか? ↓サブルーチン(calc) return (@list, $i); ↓メイン my $a = 12; my (@list, $i) = &calc($a); 間違っていると思いますが、現時点でのプログラムを一部書きました。 ご回答よろしくお願いします! Perlで二次配列は可能? 毎度御世話になっております。 Perlスクリプトで二次配列のような配列の使い方は可能でしょうか? (A*B)種類の変数を配列の形で操作したいと考えています。 A,B共に8~256ぐらいで、処理の途中で増やせる様にしたいのです。 連想配列を用いればそれらしいことが出来るのではないかと思ったのですが、 うまく行きません。どうかお知恵を御貸し下さい。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 連想配列の配列の使い方 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の配列を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の次の様な要素が3つある配列で、 @t = ('A',,'C'); 2要素目が空で有ることを判別したいのですが、どうしたら良いでしょうか? 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]ということになるのでしょうか。 mod_perlとperlのソースについて mod_perlの方がperlより早いとい書いてあるサイトはやまほどありますが、いったいソースは何が違うのかさっぱりわかりません。実際に何%程度異なるのもわからないので、困っています。 mod_perl本というのはなさそうなので、 perlとmod_perlのソースの違いがわかるサイトや本はあるのでしょうか? htmlのhidden配列になっている項目を、Perlで受け取る場合 htmlのhidden配列になっている項目を、Perlで受け取る場合 htmlで Name=A というhidden項目が複数作成され、ボタンをクリックしたら、CGIにとばしたいのですが、Perlで受け取る場合、配列に置き換えて受け取るのが良いのでしょうか? それとも、そのまま、varで受け取れるのでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム JAVA 配列のリストの作り方 ArrayList<String[]> stl = new ArrayList<String[]>(); このように、配列をリスト構造で作ることはできませんか? perlで読み込んだURLを配列に入れたい 以下のようにカテゴリーとURLが書いてあるファイルがあり これをPerlでカテゴリとURLに分けて処理したいと思っております。 例えば配列としてカテゴリとURLを自由に呼び出せるよう にしたいのですが、あまりに初心者で方法が思いつきません。。。 テキスト ------------------------------------- Search Engine http://www.yahoo.co.jp http://www.google.co.jp Shopping http://www.rakuten.co.jp http://amazon.co.jp Sports http://www.mlb.com http://www.j-league.or.jp その後多数のカテゴリとURLが続く。。。 ------------------------------------- どんな方法でもカテゴリと関連したURLが取り出せればよいのですが、 例えば下記のような配列や、 $shopping[1] = http://amazon.co.jp あるいは下記のような多重配列にしてURLを扱うにはどのようにしたらよいでしょうか? $url[0][1] = http://www.google.co.jp よろしくお願いいたします。 リストの再構成について こんにちは、皆様からのアドバイスをお願いいたします。 あるリストがあって 開始位置 終了位置 1 5 8 10 14 16 20 28 という構成になっています。 これをこのリストに載っていない領域(6~7,11~13)も含めて 二次元配列に格納したいとき @test = ([1 5],[6 7],[8 10],[11 13],[14 16],[17 19],[20 28]); にはどのようにperlでコーディングしたらよいのでしょうか? 皆様からのご助言をお願いいたします Perlのサブルーチンで連想配列(ハッシュ)を渡す Perlのサブルーチンで連想配列(ハッシュ)を渡す方法 -------------------------------------- $str=rep::replace(%A,$B,@C); -------------------------------------- sub refidrep ( \%\$\@ ){ my(%A,$B,@C)=(@_); } -------------------------------------- では、上手くいきませんでした。 どのようにしたら、連想配列をサブルーチンに渡せるのでしょうか? 分かる方いらっしゃいましたらご教授ください。 perlで2つの配列を比較する方法について こんにちは、perlについての質問です。 2つの配列を比較するで調べたところ、"@deff = grep { !{map{$_,1}@array2 }-> {$_}}@array1;"で比較ができると書かれていました。perl初心者ですので、よくわからず、自分なりにこの処理について調べてみましたが、わかりませんでした。この処理の詳細がわかる方いましたら、教えてください。(特にmap($_,1)@array2 の部分がよくわからなかったです) よろしくお願いします。 Perlで構造体の配列を作る方法 Perlで構造体の配列を作る方法を教えてください。 初期値の設定方法もお願いします。 2次元配列がわかりやすく記述されたおすすめの書籍はありませんか? こんばんは、皆さん。 2次元配列がわかりやすく説明されているおすすめの本はありませんか? リファレンスも怪しいので、そこから丁寧に解説されていて、 2次元配列を中心に、多次元配列にも触れられている本を探しています。 私の技術レベルを持っている本で表すと以下のとおりです。 ・Perlの絵本(一通り理解しました) ・技術評論社のすぐわかるPerl(一通り理解しました) ・ASCII社のPerl/CGIスクリプト入門(CGIの前までは理解しました) これらの本には2次元配列については触れられておらず、 まだ自分には早いのかとも思いましたが、必要に迫られています。 アマゾンの評価は、具体的にこの項目についてはどうだといった情報が載っていないため、参考にできませんでした。 権威ある分厚い本は、持っている本を完全に理解してからにしようと思っています。 Perlの絵本くらいわかりやすく図解されているとありがたいです。 よろしくお願いします。 ソート順の配列に順位表示する Perlで、大きいソート順になっている配列があります。 その中には重複しているデータもあります @list = (100,80,80, 50, 50, 45, 10, 0, 0, 0); のような配列を @ranking = (1,2,2, 4, 4, 6, 7,10,10,10); と順位を格納させたいです。 簡単な方法がありましたら、教えてください。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
確かにちょっとややこしい感じですね。 なんとなくはわかった気がします。 ありがとうございました。