Chas Owens wrote:
> On 5/16/07, Mathew Snyder <[EMAIL PROTECTED]> wrote:
>> I have a trouble ticket application that uses a regex to find a piece of
>> information in an incoming email and auto populate a field if it is
>> found. The
>> line it will be looking for is
>> CUSTOMER ENVIRONMENT customer_name
>> where customer_name will never have a space making it one word. If I
>> just want
>> to pull from the line the customer_name would my regex look like
>> $MatchString = "CUSTOMER ENVIRONMENT\s+(\w)"
>
> Bad idea. Use qr() instead.
>
>>
>> For what it's worth the line that will handle this is
>> $found = ($Transaction->Attachments->First->Content =~ /$MatchString/m);
>> I'm guessing that when used in an assignment like this, $1 will be
>> used as the
>> value. The contents of (\w) in this case. Is that correct?
> snip
>
> Yes, the $1 match variable will hold the match if $found is true. A
> common idiom is therefore
>
> my $name;
> my $regex = qr/CUSTOMER ENVIRONMENT\s+(\w)/;
> if ($Transaction->Attachments->First->Content =~ /$regex) {
> $name = $1;
> } else {
> die "could not find name";
> }
>
> Another way to write this is
>
> my $regex = qr/CUSTOMER ENVIRONMENT\s+(\w)/;
> my ($name) = $Transaction->Attachments->First->Content =~ /$regex/
> or die "could not find name";
>
What does gr() do?
Mathew
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/