>> 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>


Reply via email to