while () { # no need for chomp, because you strip whitespace below if (my($quote, $person) = /(.*?)--(.*?)/s) { s/^\s+//, s/\s+$/ for $quote, $person; print "$quote\t$person\n"; } else { # no --, so just show the cleaned up quote: s/^\s+//, s/\s+$/; print "$_\t(Unknown)\n"; } }