my %source; my %dest; my @buffer; $source{key1} = "value1"; $source{key2} = "value2"; push (@buffer, %source); $source{key1} = "value3"; $source{key2} = "value4"; push (@buffer, %source); #(...) %source = pop(@buffer); print $source{key1};