use strict; use warnings; my ($book_id , %booklist_1); Init_1(); populate_and_print(); Init_2(); populate_and_print(); #-------------------- sub populate_and_print{ foreach $book_id (keys %booklist_1) { my ($update_id, $title) = ( int (100 *rand()), "title" . int (1000 *rand())); $booklist_1{$book_id}{'update_id'} = $update_id; $booklist_1{$book_id}{'title'} = $title; print "$book_id > $booklist_1{$book_id}{'update_id'}\n"; } #$sth->finish; foreach $book_id (keys %booklist_1) { print "XXX $book_id > $booklist_1{$book_id}{'update_id'}\n"; } } sub Init_1{ %booklist_1=(); @booklist_1{ 100..104 } = ( { title => 'empty', update_id => 'missing' } ) x 5; } sub Init_2{ %booklist_1=(); $booklist_1{$_ } = { title => 'empty', update_id => 'missing' } for 100..104; }