<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:courier,monaco,monospace,sans-serif;font-size:10pt"><div style="font-family: courier,monaco,monospace,sans-serif; font-size: 10pt;">la causa es la prioridad de los operadores,<br><br>&nbsp; defined $args{$k}<br>&nbsp; &nbsp; &nbsp; ?&nbsp;&nbsp;&nbsp; push @{ $args{$k} }, $v<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; $args{$k} = [ $v ];<br><br>equivale a:<br><br>&nbsp; ( defined $args{$k}<br>&nbsp; &nbsp; &nbsp; &nbsp; ?&nbsp;&nbsp;&nbsp; push @{ $args{$k} }, $v<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; $args{$k} )<br>&nbsp; &nbsp; &nbsp; = [ $v ];<br><br><br>y tu lo que quieres es:<br><br>&nbsp; defined $args{$k}<br>
&nbsp; &nbsp; &nbsp; ?&nbsp;&nbsp;&nbsp; push @{ $args{$k} }, $v<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; ($args{$k} = [ $v ]);<br>
<br><br>en perlop aparece una tabla con las prioridades de todos los operadores de Perl<br><br>- Salva<br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Original Message ----<br>From: Bruno &lt;brunorc@gmail.com&gt;<br>To: Lista de correo de Madrid Perl Mongers &lt;madrid-pm@pm.org&gt;<br>Sent: Tuesday, October 30, 2007 1:39:49 PM<br>Subject: [Madrid-pm] Can't modify push in scalar assignment<br><br>
Hola todos<br><br>Quería usar el operator "? :" para ésta operación:<br><br>defined $args{$k}<br>&nbsp;&nbsp;&nbsp; ?&nbsp;&nbsp;&nbsp; push @{ $args{$k} }, $v<br>&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; $args{$k} = [ $v ];<br><br>pero me sale el error "Can't modify push in scalar assignment".
<br><br>Lo que es interesante, es que la forma:<br><br>if ( defined $args{$k} ) {<br>
&nbsp;&nbsp;&nbsp; push @{ $args{$k} }, $v;<br>}<br>else {<br>
&nbsp;&nbsp;&nbsp; $args{$k} = [ $v ];<br>}<br>
<br>funciona bien, tambien la construcción:<br><br>defined $args{$k} and push @{ $args{$k} }, $v or $args{$k} = [ $v ];<br><br>(sí, es una forma muy rara).<br><br>Algunas ideas?<br><br>Saludos, Bruno<br>
</div><br></div></div><br>__________________________________________________<br>Do You Yahoo!?<br>Tired of spam?  Yahoo! Mail has the best spam protection around <br>http://mail.yahoo.com </body></html>