#!/usr/bin/env perl use strict; use warnings; my @AoH_1 = ( { name => 'Ant', age => 0 }, { name => '0', age => 10 }, { name => 'Bob', age => 20 }, { name => 0, age => 30 }, { name => 'Cat', age => 40 }, { name => '', age => 50 }, { name => 'Dog', age => 60 }, { name => undef, age => 70 }, { name => 'Eel', age => 80 }, { age => 90 }, { name => 'Fox', age => 99 }, ); my @AoH_2 = (); my $q = "'"; for (\@AoH_1, \@AoH_2) { my @AoH = @$_; print 'Elements in AoH: ', 0+@AoH, "\n"; my $csv; if (@AoH) { $csv = join ',', map { defined $AoH[$_]{name} ? "$q$AoH[$_]{name}$q" : "$q$q" } 0 .. $#AoH; } else { $csv = "$q$q"; } print "CSV: $csv\n"; }