【覚書】Perlで配列のメンバとしてHASH変数を追加する、他
忘れないうちにメモ書き。
しばらく書いてないのですっかり忘れてしまってましたが……Perlって構造体使えないのですね(ナニヲイマサラ)。
代わりに配列とHASHを駆使すれば似たようなことは出来るようですが。
配列にHASHを追加するには、
push( @array, { %hash } ) ;
でよい……のかな?。
以下、サンプル(上記の他、HASHへの値セットパターンいくつか&サブルーチンへ渡す引数をリファレンス渡しにする例。処理内容には特に意味無し)。
my @list = () ;
%tmp1 = ( 'id', '11111', 'name', 'R.B' ) ;
push( @list, { %tmp1 } ) ;
%tmp2 = (
id => '22222'
, name => 'D.E'
) ;
push( @list, { %tmp2 } ) ;
my %tmp3 ;
$tmp3{'id'} = '33333' ;
$tmp3{'name'} = 'W.K' ;
push( @list, { %tmp3 } ) ;
my $data = 'id,12345,name,A.K:id,67890,name,S.T:id,10293,name,G.H' ;
my @unit = split( ':', $data ) ;
for my $elm ( @unit ) {
my %tmp = split( ',', $elm ) ;
push( @list, { %tmp } ) ;
}
print "_/_/_/ TEST 1 _/_/_/\n\n" ;
print "\$list {\n" ;
for ( my $ci=0; $ci <= $#list; $ci++ ) {
print " [$ci] {\n" ;
for my $key ( keys %{ $list[$ci] } ) {
print " $key => '$list[$ci]{$key}'\n";
}
print " }\n" ;
}
print "}\n\n" ;
print "_/_/_/ TEST 2 _/_/_/\n\n" ;
print "\$list {\n" ;
for my $ci (0..$#list) {
&prtUnit( \@list, $ci ) ;
}
print "}\n\n" ;
# _/_/_/ subroutine _/_/_/
sub prtUnit
{
my $refList = shift ;
my $ci = shift ;
print " [$ci] {\n" ;
for my $key ( keys %{ $refList->[$ci] } ) {
print " $key => '$refList->[$ci]{$key}'\n";
# print " $key => '$$refList[$ci]{$key}'\n"; # same as above
}
print " }\n" ;
} # end of prtUnit2
__END__
2006/05/23(火) 04:47 | 固定リンク
| 記事の編集(管理者用)
「パソコン・インターネット」カテゴリの記事
- 動けるものも久しからず(2012.02.15)
- 5年以上も気付かない振り(2012.02.14)
- 探しものって、みつけにくいものですね…(2012.02.13)
- Norton Internet Securityでエラー: 「3043,1」(2011.07.13)
- アンケート:ブログ等で「続きを読む」リンクを見たら…(2010.11.05)
「覚書」カテゴリの記事
- 動けるものも久しからず(2012.02.15)
- Norton Internet Securityでエラー: 「3043,1」(2011.07.13)
- 終わりを惜しむ6タイトル(2010.12.19)
- ココでも:ココログ広場ユーザーのブログをキーワードで検索するサービスを試作(2010.10.29)
- ココログ用ReadMore:トップページの『》 続きを読む』をその場で展開するスクリプト(2010.11.06)

