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

Luis Motta Campos luismottacampos em yahoo.co.uk
Quarta Maio 23 01:10:38 PDT 2007


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//...).

   Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}




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