>> returns "true" or "false" (1 or '') and in list context it returns the >> contents of any capturing parentheses in the pattern. >> >> The expression: >> >> ( $ptypeline =~ /movable.+(sine|geo|radial|ortho)/i >> )[ 0 ] >> >> is a list slice so the regular expression is in list context but the slice is >> a single value so the expression is a scalar. >> >> The || operator will only work with scalar values, not with lists, so this >> works because the list has been converted to a scalar with the list slice. >> >> John > > ******************************************** > the list context represents everything between the / / > and the slice context represents [ 0 ] which is > assigned as a scalar to $ptypeline. > > Correct?
Any time you surround something with parenthesis () it is considered "list context", i.e. Scalar context: $a = $ptypeline =~ /movable.+(sine|geo|radial|ortho)/i; In scalar context, perl is trying to assign a scalar to $a. In scalar context that expression returns a 1 or 0 depending on whether it was able to find that regular expression inside of $ptypeline. (Or if I had a /gi at the end it would return the number of matches it found). List context: @a = ($ptypeline =~ /movable.+(sine|geo|radial|ortho)/i); This is list context, meaning that perl is trying to get a list out of that expression. In list context, that expression returns whatever items it found in sets of parenthesis -- in this case, if ptypeline had "ortho", @a would be ("ortho"). I'm learning... - B -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>