APR::Table の使い方
use strict; use APR::Pool (); use APR::Table (); my $p = APR::Pool->new; my $t = APR::Table::make($p, 1); $t->add('k1', 'v1-1'); $t->add('k1', 'v1-2'); $t->add('k2', 'v2-1'); $t->merge('k2', 'v2-2'); my @v1 = $t->get('k1'); # @v1 == ('v1-1', 'v1-2') my @v2 = $t->get('k2'); # @v2 == ('v2-1, v2-2') $t->do( sub { my ($k, $v) = @_; print "$k = $v\n"; 1; } ); __END__ 出力は k1 = v1-1 k1 = v1-2 k2 = v2-1, v2-2
mod_perl 環境では pool は $r->pool() とかすれば取得できるのでそれを使ってください。make() の 1 は,作成するときに作っておくスロットの数で,set や add すると自動的に増えていくのでご心配なく。
キー一覧だけ取得するメソッドというのはなさそうです。ハッシュに tie するか,do() でクロージャを与えてイテレータで収集するかですね。列挙を続けたいならクロージャで 1 を返すことをお忘れなく。