use warnings; use strict; while ( my $line = ) { while ( $line =~ /(\p{Alnum}+([-']\p{Alnum}+)*)/g ) { my $word = $1; print "$word\n"; # blah } } __DATA__ Tom's wouldn't, they're McCain-Feigngold maņana.