Perlでリストの要素数

Perlでリストの要素数を取得するには、scalarを使い、

リストをスカラーとして評価するといいらしいです。

@listの要素数「5」が出力されていることがわかる。

では、ハッシュに対してscalarを評価するとどうなるのかもやってみた。

%hashをスカラーとして評価すると「3/8」が出力されていることがわかる。

この「3/8」が何なのか・・・わからないので教えてください。

参考

Pocket

Posted in Perl.

2 Comments

  1. >inventさん
    内部状態なんだね。
    hashの要素数(?)を変えたらこんな感じになりました。
    1 => 1/8, 2 => 2/8, 3 => 3/8
    4 => 3/8, 5 => 3/8, 6 => 3/8
    7 => 4/8, 8 => 5/16
    利用するhash bucketの数は要素によって変化するけど、
    用意されるhash bucketの数は要素数によって規則的に確保されるんですね。
    たぶん、
    8 → 16 → 32 → 64 → 128 → 256
    8 * 2^n
    nは要素数を食い尽くした時点で+1。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">