use strict; use warnings; use Data::Dumper qw(); use Data::Dump::Streamer qw(); my %switch_param; my $switch_optional; $switch_optional->{foo} = 'bar'; my @optional; for (1 .. 3) { @optional = (@optional, $switch_optional); } $switch_param{"optional"} = [@optional]; Data::Dump::Streamer::Dump \%switch_param; print "\n\n"; print Data::Dumper::Dumper (\%switch_param);