for my $ip ( @iplist ) { my $host = shift @hosts; # get host name for this $ip for my $portid ( 0 .. $ipdata{$ip}{lastport} ) { my $outstr = "$host,"; for my $info ( @infolist ) { $outstr .= '"' . $ipdata{$ip}{$info}[$portid] . '",'; } $outstr =~ s/,$/\n/; # replace trailing comma print O $outstr; } }