use JSON; use Data::Dump "dump"; dump( other_way() ); # This will show the anonymous structure. print "JSON: ", to_json( other_way() ), $/; sub other_way { my %user1 = ( username => "paco", fish => "Sunfish" ); my %user2 = ( username => "YourUncle", fish => "Coelacanth" ); my %user3 = ( username => "hiragana", fish => "Monkfish" ); my %user4 = ( username => "MosaicNL", fish => "Sixgill Shark" ); my @users = ( \%user1, \%user2, \%user3, \%user4 ); return \@users; }