#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %source; my %dest; my @buffer; $source{key1} = "value1"; $source{key2} = "value2"; push( @buffer, %source ); $source{key1} = "value3"; $source{key2} = "value4"; push( @buffer, %source ); #(...) print Dumper \@buffer; %dest = splice @buffer, 0, 2; print Dumper \%dest;