use strict; use warnings; while () { next unless /\S/; chomp; my ($name, $markerA, $markerB, $height) = split (/\s+/,$_); $name //= ""; $markerA //= ""; $markerA ="" if $markerA =~ /^0$/; $markerB //= ""; $markerB ="" if $markerB =~ /^0$/; if ($markerA !~ /A/) { $markerA = $markerB; $markerB = "B"; } $height //= ""; if (!$height) { my $string; foreach ($name, $markerA, $markerB) { $string .= "\'$_\',"; } chop $string; print "$string\n"; } } =prints '2','A','' '3','','B' =cut #Name Marker1 Marker2 Height Time __DATA__ 1 A A 6246 0.9706 1 B B 3237 0.9706 2 A 0 2 B B 5495 0.9775 3 A A 11254 0.9694 3 B 0