SYNOPSIS use Clone::Util qw(modclone); my $row = {name=>'ujang', gender=>'m', nationality=>'id'}; my $table = [ $row, (modclone { $_->{name} = 'budi' } $row), (modclone { $_->{name} = 'asep' } $row), (modclone { $_->{name} = 'rini'; $_->{gender} = 'f' } $row), ]; FUNCTIONS modclone(\&code, $data) => $clone Clone $data and then run code. Code will be given the clone of data. For convenience, $_ will also be localized and set to the clone of data. So you can access the clone using $_ in addition to $_[0]. SEE ALSO Function::Fallback::CoreOrPP's clone() is used for cloning.