my %id_map; my @fields = qw/suby stat desc catg agrp lnam/; @id_map{@fields} = qw/2 7 8 536870915 536870922 536870926/; ######### my %p_record = ( suby => "foo", stat => "bar", desc => "baz", catg => "", agrp => "boo", lnam => "" ); my $tkt_data = join ", " => map { qq["$id_map{$_}", "$p_record{$_}"] } grep { length $p_record{$_} } @fields; print "$tkt_data\n"; # "2", "foo", "7", "bar", "8", "baz", "536870922", "boo"