[Perl] Uso de una función
anónima
Salvador Ortiz Garcia
sog@msg.com.mx
26 Aug 2002 20:49:36 -0500
On Mon, 2002-08-26 at 21:10, Ing. Roberto Andrade Fonseca wrote:
> Hola:
>
> Quiero hacer algo así:
>
> open (OUTFILE,">$path_file") || imprime un mensaje y actualiza un=
a variable:
>
> actualmente tengo:
>
> open (OUTFILE,">$path_file") || {$ok = 0, print "No puedo abrir=
para escritura $ok $path_file"};
>
> Y parece que jala bien, pero no estoy seguro de que sea la mejor manera, =
pues si cambio la asignación a $ok al final, no jala.
>
> Si separo con punto y coma (;) la fucnión anónima, tampoco jala.
>
> ¿Cuál es la manera adecuada de manejar esta situación?
En el ejemplo que muestras el "|| { ... }" NO te contruye una función
anonima, en ese contexto lo que obtienes es una referencia a un HASH!
Probablemente lo que buscas es:
open(.....) or do {...};
Que por cierto, tampoco crea funciones anónimas, pero hace lo que
quieres. Ahora que, en términos de estílo prefiero:
unless(open .....) { ... };
Pues reservo la construcción "or ..." a casos con sentencias simples.
Saludos.
Salvador Ortiz.