Why wouldn't it be done the first time? That doesn't work unless $content[0] is somehow false .. since we're looping through @content and they're presumably all non-false, then $address is always set. Best way to get rid of the temp var is to just use split, or dpending on context (i.e. if you're reading a file) you could do print "," if $. > 1;.
Quite right. That's what comes of answering before coffee! I was thinking in terms of concatenating the addresses into a variable which would be undef the first time round.