in reply to how to alternate join?

As mentioned, the roll-your own with a mod 2 in there somewhere is a way to go. Could also do a more creative (read: maybe not best) join like:
my @datafiles = map { "file".$_ } 1..7; printf "files available=\n%s\n", join("\n", # 4) glue w/your newlines grep { $_ } # 3) exclude blank elements created by + split() split(/([^,]+, [^,]+, )/, # 2) split on pairs join(", ", @datafiles) # 1) glue big ,-delim string ) ) ;