SPUG: passing in a reg exp as a string, then interpolating
Dean Hudson
dean at ero.com
Fri Jun 9 16:23:08 CDT 2000
This seems pretty dangerous in general; in particular without taint
checking. Depending on which version of perl you're running, you need
to be careful to watch out for things like:
(?{ evil code })
That being said, you can also play around with qr//, which would allow
you to pass options to your regex. (But I don't think you can pass
the opts in a valiable...)
See perlop and perlre, and be careful with what you do with the user
input.
dean.
On Fri, Jun 09, 2000 at 04:18:35PM -0400, Joel wrote:
> On Fri, 9 Jun 2000, Christopher Cavnor wrote:
>
> > does anyone know how to pass a regular expression into a script (in my
> > case, from an HTML form) and then evaluate the expression?
> >
> > I am passing in a reg exp (like "/^hello/ ")as a string and grabbing
> > it (my $regexp = /^hello/ ), and then trying to interpolate:
> >
> > push @results, $k if do{ $k =~ @{[ $regexp ]};
> >
> > Doesn't seem to be working. Any tricks for doing this?
>
>
> You could use 'eval':
>
> #!/usr/local/bin/perl
>
> use strict;
>
> my @results;
> my $regex = '/^hello/';
> my $test = 'hello world';
>
> push @results, $test if ( $test =~ eval $regex );
>
> print "@results\n"; # prints "hello world\n";
>
> __END__
>
>
> Joel
>
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
> Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
> For Subscriptions, Email to majordomo at pm.org: ACTION spug-list EMAIL
> Replace ACTION by subscribe or unsubscribe, EMAIL by your Email address
>
>
--
my $email = qr{ dean(h)?@(?(1)verio\.net # @ work if h
| ero\.com) }x; # other
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
For Subscriptions, Email to majordomo at pm.org: ACTION spug-list EMAIL
Replace ACTION by subscribe or unsubscribe, EMAIL by your Email address
More information about the spug-list
mailing list