# pipe output from bdf through this script for a surprise @lines = <>; { if (scalar(@tokens = split /\s+/, (shift @lines)) > 1) { } else { push @tokens, (grep /./, (split /\s+/, (shift @lines))); } push @csv, ((join ',', @tokens) . "\n"); redo if @lines; } print @csv;