Freek de Kruijf <f.de.kru...@gmail.com> writes:
> Hi, > > I am trying to understand fully a perl program with the following lines: > > } elsif( /^(\#?\s*(?:pickup|qmgr)\s+)(?:fifo|unix)(\s+.*)/ ) { > if( defined $normalize->{$1} ) { next; } else { $normalize->{$1} = 1; } > I do understand the first line, but I can not find what the second line is > about. $1 contains the content of the first capturing group in the matching regexp. in this case, "#pickup", "#qmgr", "pickup", "qmgr"... etc. $normalize->{$1} means: getting the corresponding value of $1 from the HashRef $normalize. $normalize->{$1} = 1 means: setting the corresponding value of $1 to 1. `next` is a keyword for skipping the rest of loop, so it would seem to me that these 2 lines is inside of a loop. I'm guessing $_ is the iterator of the loop. Assuming that's the case, it appears to me $normalize is used to keep track the occurance of the captured words. Not how may times they occur, just if they occur or not. -- Cheers, Kang-min Liu -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/