Perl で「ハッシュの配列」を扱う場合のメモ[Perl]
(2017-05-24 16:12:50) by shinoda


< ページ移動: 1 2 >

久しぶりに DB データが「ハッシュの配列」にセットされまくってる感じの Perl プログラムのメンテを行うことになったので、ハッシュ(連想配列)のリファレンスなどについてメモ。

まあ、Perl の多次元配列については、木本裕紀さんの「Perl学習サイト - サンプルコードPerl入門」サイトの中の「配列とハッシュで多次元データ構造を自由に操る」がそのまま参考になる。

なので、ここで書いているのはその補足。

ハッシュ(連想配列)を配列にセットした、いわゆる「ハッシュの配列」を扱う場合。

下のコードは、PostgreSQL から取得したデータをセットしてる例(余分な処理は削ってるので、「例外に対する処理が甘い」とか、そういうツッコミはなしで(笑))

@persons = ();

# DB から $sql の条件でデータ取得(例えば、クラス名簿とか)
$result = $Conn->exec($sql);
if (!$result->resultStatus eq PGRES_TUPLES_OK) {
# DB エラーなら処理を抜ける
exit;
}

# 人数分データを読み込む
for ($i = 0 ; $i < $result->ntuples ; $i++) {
# DB から取得した名前、性別、年齢をハッシュにセット
my %person = ();
$person{'name'} = $result->getvalue($i, $result->fnumber(name));
$person{'sex'} = $result->getvalue($i, $result->fnumber(sex));
$person{'age'} = $result->getvalue($i, $result->fnumber(age));
# ハッシュを配列にセット
push @persons, \%person;
}

これで、クラス名簿が「ハッシュの配列」にセットされる。

全員のデータを読みだそうとしたら、

< ページ移動: 1 2 >


コメント(2)
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8