in reply to finding the position of a particular character in a string

perl -E' $a="THE FOOD IS DELICIOUS"; $srch="O"; push @i,index($a,$srch,$i[-1]+1) for $a=~/$srch/g; $" = ","; say "@i"; ' 5,6,18

Replies are listed 'Best First'.
Re^2: finding the position of a particular character in a string
by BrowserUk (Patriarch) on Oct 06, 2011 at 04:45 UTC

    Searching twice is expensive and unnecessary:

    $a="THE FOOD IS DELICIOUS";; $p=0; @p=(); push @p, $p-1 while $p = 1+index $a, 'O', $p; print @p;; 5 6 18

    Or:

    $a="THE FOOD IS DELICIOUS";; @p=(); push @p, $-[0] while $a =~ m[O]g;; print @p;; 5 6 18

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.