Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: Embperl

About the regular expression problem

 

 

ModPerl embperl RSS feed   Index | Next | Previous | View Threaded


yurenli at gmail

May 4, 2007, 12:51 AM

Post #1 of 2 (1210 views)
Permalink
About the regular expression problem

Hi,
I have a problem when I use regular expression.
The sample code:
[- $_ = "One Two Three" -]
[$ if(/(\S+) (\S+) (\S+)/) $]
The words are: [+$1+], [+$2+], [+$3+]
[$ endif $]

The result should be "The words are: One, Two, Three," But I got the
result "The words are: One, Two,."
After trying, I found that I could just get the match variables $1 and
$2, and the match veriables $3, $4 etc, could not be used in embperl.

There is no problem about this in pure perl code such as
$_ = "One Two Three";
if(/(\S+) (\S+) (\S+)/) {
printf "The words are: $1, $2, $3";
}

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe [at] perl
For additional commands, e-mail: embperl-help [at] perl


richter at ecos

May 4, 2007, 4:14 AM

Post #2 of 2 (1091 views)
Permalink
RE: About the regular expression problem [In reply to]

HI,

> I have a problem when I use regular expression.
> The sample code:
> [- $_ = "One Two Three" -]
> [$ if(/(\S+) (\S+) (\S+)/) $]
> The words are: [+$1+], [+$2+], [+$3+]
> [$ endif $]
>
> The result should be "The words are: One, Two, Three," But I
> got the result "The words are: One, Two,."
> After trying, I found that I could just get the match
> variables $1 and $2, and the match veriables $3, $4 etc,
> could not be used in embperl.
>
> There is no problem about this in pure perl code such as $_ =
> "One Two Three";
> if(/(\S+) (\S+) (\S+)/) {
> printf "The words are: $1, $2, $3";
> }
>


Embperl does not do anything with $3, $4 etc. I guess this is a scoping
problem. I would write


[$ if(($a, $b, $c) = (/(\S+) (\S+) (\S+)/)) $]
The words are: [+$a+], [+$b+], [+$c+]
[$ endif $]

That makes sure $1, $2 etc. does not go out of scope

Gerald


** Virus checked by BB-5000 Mailfilter **

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe [at] perl
For additional commands, e-mail: embperl-help [at] perl

ModPerl embperl RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.