use strict; use warnings; use Data::Dumper; my $ref = parse(); print Dumper($ref); print ref $ref, "\n"; sub parse { my @a = 0..2; my %b = (foo => 7); my $c = 55; return { a => \@a, b => \%b, c => $c } } __END__ $VAR1 = { 'c' => 55, 'a' => [ 0, 1, 2 ], 'b' => { 'foo' => 7 } }; HASH