[Cascavel-pm] Res: expressao regular
Luis Motta Campos
luismottacampos em yahoo.co.uk
Quinta Janeiro 24 04:18:55 PST 2008
Patty Silva wrote:
> Qual a diferenca em colocar
>
> open(FILE,"<$filename).....
Isso é erro de sintaxe: você tem de abrir e fechar as aspas. ;)
open( FILE, "<$filename" );
custa uma interpolação inútil e obriga o open() a olhar o nome do
arquivo para saber o que você quer - não é muito conveniente.
Também tem o problema de legibilidade, mas este é menor, eu acho.
> de
>
> open my $file,"<",$filename
esta é a minha forma predileta. Mas eu quase nunca uso (") quando quero
colocar literais do tipo string no meu código. Eu normalmente uso o
operador q//, quando é uma palavra ou frase, e aspas simples (') quando
é apenas um caracter. Assim, evito a possibilidade de interpolações
acidentais dentro das minhas strings literais. ;)
Note também que FILE (no primeiro exemplo) é uma /bareword/, uma prática
que a gente está recomendando que as pessoas abandonem faz muitos anos.
O equivalente "my $file" é considerado boa prática de programação, além
de ser mais seguro e legível.
Não se esqueça de que você precisa tratar erros, quando abre um arquivo.
> e quando eu faco:
>
> open my $file, $filename or die $!;
> $data .= do { local $/; <$file>; }
> close $file;
>
> da erro de sintaxe:
> syntax error at test.pl line 27, near "close"
Sim, ele disse "perto do comando 'close()'": quer dizer que a linha
anterior precisa de um ';' (depois do bloco do "do"):
open my $file, $filename or die $!;
$data .= do { local $/; <$file>; } ;
close $file;
Consegue ver a diferença na linha do meio?
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 Cascavel-pm