use warnings; use strict; my $line; while () { my $part = (split)[0]; if (/[.()]/) { $line =~ s/\s*$//; $line .= $part; } else { $line .= $part . q[ ]; } } print $line; __DATA__ i o am o 2 o ( o but o ) o . o how o