#!/usr/bin/perl use diagnostics; use strict; use utf8; use warnings; use Data::Dumper; sub get { my (@parrents) = @_; my @frames = (); for (1..3) { my @p = @parrents; push @frames, {f=>$_, p=>\@p}; } return @frames; } my @pf= ("foo"); my @list = get((@pf, "bar",)); # letztes Feld hat einen anderen Wert @{$list[$#list]->{p}}=@pf; print Dumper @list;