in reply to Special Variables and Multiple Regexp Matching

I'm not sure what your goal is...

We have to guess how '$token' and '$line' look like, and I have no idea why the (undemonstrated) while loop should not terminate.¹

(see How (Not) To Ask A Question and How do I post a question effectively?)

But pos will tell you where the last match paused, the rest should be easily calculated with 'length($token)' (IF token is just a simple string)

DB<127> $str= "a b " x 4 => "a b a b a b a b " DB<128> $token="a" => "a" DB<129> print pos($str),": $1\n" while $str =~ /($token)/g 1: a 7: a 13: a 19: a

update

¹) well except the fact that lc always creates a new string which resets the search-position. Simply lowercase once '$line' before you loop!

Cheers Rolf

( addicted to the Perl Programming Language)