[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