@lines = <>; { (scalar(@tokens = split /\s+/, (shift @lines)) > 1) || push @tokens, (grep /./, (split /\s+/, (shift @lines))); push @csv, ((join ',', @tokens) . "\n"); redo if @lines; } print @csv;