PHPでいうところの
$list = array("id"=>"1","name"=>"hoge","created"=>"2009-09-29 00:00:00");
なんて連想配列をperlにてハッシュで表現した場合、each関数などでループ処理すると順番に取り出しますが、その順番は上記の記述における順番とは違い、期待とは違う場合があります。
PHPの場合なら
foreach($list as $key => $val){
print "$key:$val<br />\n";
}
結果
id:1
name:hoge
craeted:2009-09-29 00:00:00
となりますが、perlの場合
while(($key,$val)=each(%list)){
print "$key:$val<br />\n";
}
結果
created:2009-09-29 00:00:00
name:hoge
id:1
とか。
そこで、期待したとおりに出力させるためにモジュールをインストール!
そのモジュールがTie::IxHashです。
CPANにてインストールしました。
# cpan
初めに初期設定メッセージがいろいろ出てくるので、基本はデフォルトのままEnterしていけば良いと思います。
必要なプログラムパスを確認してくるところで、gzip, tar, make, lynxは最低限あるように配慮して続け、Parameters for the 'make install' command? []と確認してくるところでUNINST=1と入力し、"古いモジュールがあった場合には消す"オプションを設定します。
ちなみに、先に設定してしまっていた場合は、
# cpan
> o conf make_install_arg UNINST=1
として設定を変更可能。(なお o conf で一覧が見られ、同様にして他も変更できます。)
その後もproxy設定不要ならそのままEnter、地域やミラーサーバは適宜選択。
以上でCPANの利用準備完了です。
>install Tie::IxHash
で、目的のモジュールがインストールできます。
抜ける場合は q または Ctrl+D で。
あとはモジュールをロードしてハッシュを設定すれば、期待どおり挿入順に取り出せます。
#!/usr/bin/perl
use Tie::IxHash;
tie %list,'Tie::IxHash';
%list = ('id'=>'1','name'=>'hoge','created'=>'2009-09-29 00:00:00');
while(($key,$val)=each(%list)){
print "$key:$val<br />\n";
}
ドキュメントやサンプルは以下を参照。
http://search.cpan.org/~gsar/Tie-IxHash-1.21/lib/Tie/IxHash.pm
$list = array("id"=>"1","name"=>"hoge","created"=>"2009-09-29 00:00:00");
なんて連想配列をperlにてハッシュで表現した場合、each関数などでループ処理すると順番に取り出しますが、その順番は上記の記述における順番とは違い、期待とは違う場合があります。
PHPの場合なら
foreach($list as $key => $val){
print "$key:$val<br />\n";
}
結果
id:1
name:hoge
craeted:2009-09-29 00:00:00
となりますが、perlの場合
while(($key,$val)=each(%list)){
print "$key:$val<br />\n";
}
結果
created:2009-09-29 00:00:00
name:hoge
id:1
とか。
そこで、期待したとおりに出力させるためにモジュールをインストール!
そのモジュールがTie::IxHashです。
CPANにてインストールしました。
# cpan
初めに初期設定メッセージがいろいろ出てくるので、基本はデフォルトのままEnterしていけば良いと思います。
必要なプログラムパスを確認してくるところで、gzip, tar, make, lynxは最低限あるように配慮して続け、Parameters for the 'make install' command? []と確認してくるところでUNINST=1と入力し、"古いモジュールがあった場合には消す"オプションを設定します。
ちなみに、先に設定してしまっていた場合は、
# cpan
> o conf make_install_arg UNINST=1
として設定を変更可能。(なお o conf で一覧が見られ、同様にして他も変更できます。)
その後もproxy設定不要ならそのままEnter、地域やミラーサーバは適宜選択。
以上でCPANの利用準備完了です。
>install Tie::IxHash
で、目的のモジュールがインストールできます。
抜ける場合は q または Ctrl+D で。
あとはモジュールをロードしてハッシュを設定すれば、期待どおり挿入順に取り出せます。
#!/usr/bin/perl
use Tie::IxHash;
tie %list,'Tie::IxHash';
%list = ('id'=>'1','name'=>'hoge','created'=>'2009-09-29 00:00:00');
while(($key,$val)=each(%list)){
print "$key:$val<br />\n";
}
ドキュメントやサンプルは以下を参照。
http://search.cpan.org/~gsar/Tie-IxHash-1.21/lib/Tie/IxHash.pm