[SP-pm] Retorno de uma sub dentro da RE

Renato Botelho rbgarga em gmail.com
Quarta Maio 23 04:41:08 PDT 2007


On 5/23/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> On May 22, 2007, at 8:10 PM, Renato Botelho wrote:
> > On 5/22/07, Fernando Oliveira <fernandocorrea em gmail.com> wrote:
> >> my ($domain) = (fqdn() =~ /^(?{short()})\.(.*)$/)
> >
> > Não funciona, coloquei até um array pra ler o retorno mas ele fica
> > vazio.
> >
> > #!/usr/local/bin/perl
> >
> > use strict;
> > use warnings;
> > use Sys::Hostname::FQDN qw/fqdn short/;
> > use Data::Dumper;
> >
> > my (@domains) = (fqdn() =~ /^(?{short()})\.(.*)$/);
> > print Dumper \@domains;
> >
> > ------------------
> >
> > garga em soc90:~/tmp> perl teste.pl
> > $VAR1 = [];
>
> lcampos em devil$ perl test.pl
> devil.blinck.com
> devil
> (?-xism:^(?{short()})\.(.*)$)
> $VAR1 = [];
>
>    Muito me espantaria se funcionasse.
>    Se você prestar atenção ao código gerado pela RE, vai ver que não
> vai bater nunca...
>
>    Agora, assim, bate:
>
> #!/usr/local/bin/perl
>
> use strict;
> use warnings;
> use Sys::Hostname::FQDN qw/fqdn short/;
> use Data::Dumper;
>
> print fqdn(), $/;
> print short(), $/;
> my $re = '^' . short() . '\.(.+)$';
> print $re, $/;
> my (@domains) = (fqdn() =~ m{$re});
> print Dumper \@domains;
> __END__
>
>    Eu gostava de saber por que alguém acho que uma sub poderia ser
> chamada dentro de uma string (ou de um operador qr//, ou de um m//...).

Se você tivesse lido meu primeiro email saberia que eu não "achei"
nada, simplesmente fiquei curioso e perguntei se era possível ou não.

-- 
Renato Botelho


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