use Text::ParseWords; my $string = "it can do this"; for ( parse_line ' ', 1, $string ) { print "[$_]\n"; } $string = "but it can't do this"; for ( parse_line ' ', 1, $string ) { print "[$_]\n"; } __DATA__ [it] [can] [do] [this]