Re: [Cascavel-pm] Módulo para utilizar "rules" em Perl5

Flavio S. Glock fglock em gmail.com
Quarta Março 15 13:31:54 PST 2006


Galvão:

Em Perl6 poderia ser assim (essa é uma das muitas formas):

  rule safename { <alphanum>+ }
  if ( $cgi->param('username') ~~ / <safename>/ ) {
     ...
  }

ou usando uma variável para guardar o nome filtrado:

  my $safe_user_name
  if ( $cgi->param('username') ~~ / $safe_user_name := <safename> / ) {
     ...
  }

- Flavio S. Glock

Em 14/03/06, "Er Galvão Abbott - PortoAlegre.pm"<pmpoa em galvao.eti.br> escreveu:
> Flávio:
>
> Como fica o processo de untaint? Seria algo como:
>
> #!/usr/bin/perl -wT
> use strict;
> use CGI;
>
> my $cgi = new CGI();
>
> my $unsafeUsername = $cgi->param('username');
> my $safeUsername = $1 if $unUsername ~~ /[A-Z][0-9]/i;
>
> if (defined $safeUsername)
> {
>     ...
> }
>
> Isso?
>
> Galvão
>
> Flavio S. Glock wrote:
> > Nélson:
> >
> > este módulo é "perl5"!
> >
> > Em perl6:
> >
> >   'abc' ~~ /((.).)./;
> >   say $0;  # ab
> >   say $0[0]   # a
> >
> > - Flavio S. Glock
> >
> > 2006/3/14, Nelson Ferraz <nferraz em gmail.com>:
> >
> >> On 3/13/06, Flavio S. Glock <fglock em gmail.com> wrote:
> >>
> >>>       use Pugs::Compiler::Rule;
> >>>
> >>>       my $rule = Pugs::Compiler::Rule->compile( '((.).).' );
> >>>       my $match = $rule->match( 'abc' );
> >>>
> >>>       if ($match) {               # true
> >>>             print $match;           # "abc"
> >>>             print $match->from;     # 0
> >>>             print $match->to;       # 3
> >>>             print $match->[0];      # "ab"
> >>>             print $match->[0][0];   # "a"
> >>>       }
> >>>
> >> Sabe o que me assusta um pouco? É que isso se parece muito com Java:
> >>
> >>       Pattern pattern = Pattern.compile("(.*):(.*)");
> >>       Matcher matcher = pattern.matcher("10:20");
> >>       if(matcher.matches())
> >>       {
> >>          System.out.println(matcher.group()); // 10:20
> >>          System.out.println(matcher.group(1)); // 10
> >>          System.out.println(matcher.group(2)); // 20
> >>       }
> >>
> >> []s
> >>
> >> Nelson
> >> _______________________________________________
> >> Cascavel-pm mailing list
> >> Cascavel-pm em pm.org
> >> http://mail.pm.org/mailman/listinfo/cascavel-pm
> >>
> >>
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >
> >
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


Mais detalhes sobre a lista de discussão Cascavel-pm