質問
きら良いモジュールは、perlできる店がオブジェクトのコレクション?
又は配列の良い十分な代替のニーズ?
更新: 募集クラスがこういうことができるような操作のように計算の収集レベルの物件からの各要素になります。
かを実行することが必要な多くの業務にいってみるべきではないだろうかクラスを記述できる拡張による個別のオブジェクト。このクラスは明らかに仕事に配列した可能性のあるハッシュ).
解決
が収集モジュールの複雑な構造のもので普通スタイルをPerlの利用アレイ配列の場合、書庫とのリストが表示されます。Perlは内蔵機能の配列としてスタックまたはリスト:push/pop、shift/unshift、スプライス(抜き差しの中、foreach形になります。
Perlでも地図と呼ばれるhashmapのと同等の辞書にはPython-きている人、会社を単一のキーは単一の値です。
Perl開発者が作成これらの二つのデータ構造の構築には何が必要か-必要な複数の値?店舗配列参照値のハッシュテーブル(地図はこちら).木々でも同様に、事前に定義された独自のキーは、複数レベルのhashmaps、又は組み合わせて使用しない場合は入れ子配列の参照です。
これら二つのプリミティブの収集の種類にPerlをお持ちでないオブジェクト指向のapiもなっています。
ばにCPANまるものを見つけることでモジュールを提供するその他のオブジェクト指向データ構造であることが発表されによって異なります。ある特定のデータ構造に必要なものリスト、スタックは地図か?がでる場合がありますが、より正確な回答(例えば特定のモジュール)だけが特定データ構造です。
忘れもちろんのこと、今まで大小さなコード例はさまざまな言語、 PLEAC (プログラミング言語の事例もCookbook)でも資源です。
他のヒント
私の第二のマイケル-Carmanコメント:使用しないでください"の"Hashmap"または"図"がんのハッシュまたは連想配列の型になります。特にPerlは、地図機能るいたずらに混乱させるだけの物です。
とはいえ、カイルバートンの応答は基本的に音響:どちらのハッシュまたは配列、または複雑な構造それらの混合物は、通常は十分です。Perl groks OOもなって保管しなければならない;チャンスが緩やかに定義されたデータ構造が良いで作られています。
失敗、よく定義しようということは"計算の収集レベルの物件からの各要素"とことに留意することPerlではキーワードのように地図やgrepできるようなプログラミングのような例
my $record = get_complex_structure();
# $record = {
# 'widgets' => {
# name => 'ACME Widgets',
# skus => [ 'WIDG01', 'WIDG02', 'WIDG03' ],
# sales => {
# WIDG01 => { num => 25, value => 105.24 },
# WIDG02 => { num => 10, value => 80.02 },
# WIDG03 => { num => 8, value => 205.80 },
# },
# },
# ### and so on for 'grommets', 'nuts', 'bolts' etc.
# }
my @standouts =
map { $_->[0] }
sort {
$b->[2] <=> $a->[2]
|| $b->[1] <=> $a->[1]
|| $record->{$a->[0]}->{name} cmp $record->{$b->[0]}->{name}
}
map {
my ($num, $value);
for my $sku (@{$record->{$_}{skus}}) {
$num += $record->{$_}{sales}{$sku}{num};
$value += $record->{$_}{sales}{$sku}{value};
}
[ $_, $num, $value ];
}
keys %$record;
からの読み出しに戻る前に、この特定 Schwarztian変換 いつもの:
3)でキードル記録のSkuを定め、この任意の構造、作品の総数の合計値。を返します匿名の配列のキーの取引件数を合計値です。
2)次のブロック間のarrayrefsとって初の全てとの比較により合計値を数値的に、降り注文;b)の場合の値が等しいとの比較により、取扱数を数値順;c)の場合にエラーが発生した場合、ソートasciibeticallyを伴います。
1)このキーのドルからレコードソートされ、データ構造に戻ります。
あのままでいることを設定する必要がある別のクラスだと考えている。
私は普通に使えるものになると配列または%のハッシュ.
何がついていないよ方?
ベース決定などへのアクセスを必要とされるオブジェクト。場合は押ししている配列インデックス、吹出/移動しての作品に使用される配列の型になります。その他のハッシュによって一部のキーまたは開催し物のお客様のニーズにあった.ハッシュのオブジェクトシンプルな力強く、高度に最適化されたの仕事ぶりにPerlです。
以来、Perlの配列に簡単に追加されるさの変更、ソート等 してくれるかな多くの"コレクション"です。る場合に必要なものが進化し、ハッシュと一般的にいます。ないことをお勧めしおりコレクションモジュールまで実際に 必要 ます。
は配列またはハッシュ保存できるオブジェクトのコレクション.クラスは多めの方が良いでしょうしたい場合は、クラスの一方がいいの方については以前よりいいます。
いっ配列またはハッシュ.
@names = ('Paul','Michael','Jessica','Megan');
や
my %petsounds = ("cat" => "meow",
"dog" => "woof",
"snake" => "hiss");