On Mon, Jun 30, 2014 at 1:41 PM, Charles DeRykus <dery...@gmail.com> wrote: > On Mon, Jun 30, 2014 at 11:57 AM, Sunita Pradhan > <sunita.pradhan.2...@hotmail.com> wrote: >> Hi >> >> I want to count number of occurrences of one word in a line within one >> single line of perl script . >> >> My code : >> >> $c++ if ($line =~ /\s+$w\s+/g); >> print "count $c\n"; >> >> >> It always return one even if $line contains same word twice . It does not do >> the global match. >> It works if I split the line but I want it in one line . >> >> > > In this case, perl always returns one if there's a match due to the > boolean scalar context. > With a match the return will be 1; otherwise 0. See the docs for a > discussion of context, > eg, perldoc perldata. > > You could alter context, ie, change "if" to "while", to get the correct count: > > $c++ while $line =~ /\s\w+\s/g; > > -- > Charles DeRykus
-- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/