> On Fri, Oct 24, 2008 at 8:42 PM, Chas. Owens <[EMAIL PROTECTED]> wrote:
>> 
>> 
>> On Oct 24, 2008, at 11:00, "Sharan Basappa" <[EMAIL PROTECTED]>
>> wrote:
>> 
>>> Hi,
>>> 
>>> I was just trying to match a string and save it in a single statement
>>> as follows:
>>> 
>>> $extracted = "cp xyz";
>>> $state_var = $extracted =~ m/cp\s+(.*)/;
>>> print "$state_var $1 \n";
>>> 
>>> The output is: 1 xyz
>>> 
>>> So the assignment to $state_var does not work. Is this an incorrect way.
>>> 
>>> Regards
>> 
>> In scalar context a match returns true if it matches or false if it doesn't.
>>  You want to use list context to cause the match to return the captures:
>> 
>> ($var) = $foo =~ /(blah)/;
>> 
> Thanks. This is exactly what I was looking for. Was trying to avoid
> having to write two statements to
> do this.


As a sidenote, for replaces I've always used:

($var = $foo) =~ s/a/b/;

- B



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to