#!perl -w use strict; my $txt = 'Trying! to get! index functionality! in array context!?'; my $srch = '!'; my @offset; my $l = -1; @offset = map {$l += length($_) + 1 } $txt =~ /(.*?)(?:$srch)/g; print "RegExp: ", join(", ", @offset), "\n"; @offset =(); my $ofs = 0; while( ($ofs = index($txt, $srch, $ofs)) > 0 ) { push @offset, $ofs++; } print "Index : ", join(", ", @offset), "\n";