[SP-pm] Dúvida sobre $1 em percorrer linhas.
Nelson Ferraz
nferraz at gmail.com
Sun Sep 28 11:11:10 PDT 2008
> O Gabriel me mandou estudar algumas coisas e olha ->
> m#</strong><br><i>\((.+?)\)</i></td>#ig && print DATA $1,$/ foreach
> split("$/",$data->content());
Alguns comentários:
1) Se você quer mesmo usar o loop, pelo menos tente escrever um código
mais legível, como por exemplo:
foreach ( split("\n",$data->content()) ) {
if ( m{</strong><br><i> \( (.+?) \) </i></td>}igx ) {
print DATA "$1\n";
}
}
One-liners como o que você escreveu podem ser úteis para obfuscar seu
código, mas são péssimos quando encontrados em código de produção.
2) A opção de regexp para tratar a string como uma única linha é o /s
, e está na documentação que eu indiquei. Se você tivesse lido a
documentação ao invés de continuar insistindo em perguntar fora da
lista, talvez tivesse chegado a algo como:
my @values = $content =~ m{</strong><br><i> \( (.+?) \) </i></td>}igsx;
3) Várias pessoas já te disseram para não usar expressões regulares
quando você pode usar um parser.
More information about the SaoPaulo-pm
mailing list