Newsgroup: it.comp.lang.perl
Titolo: s///e

$lp=0;
foreach (@list)
  {
  $s_=$s;
  $s_=s/<\$(.\w)>/${$1}/;
  $s_=s/<\$(.\w)[]>/${$1}[$lp]/;
  print $s_
  $l++;
  }
avendo $s un file html con dei tag spaciali ('<$list[]>', '<$lp') mi
aspettavo che durante lo script generasse piu' copie di $s per ogni
elem in @list con la sostituzione di tutte le variabili <$var>
correttamente, invece mi sostituisce correttamente  solo il primo
ciclo per poi mantenere costante $s_ nel tempo anche se $lp cambia.
il codice l'ho riscritto a memoria. e' un "difetto" di s///; oppure
sono io che sba[di]glio qualcosa?
Oha

   }
forse cosí si risolve tutto (non ho tentato di capire il resto)
ciao, antonio

 cerchero' un'altra donna dentro ai sogni di Tarzan...

 wrote:
| > foreach (@list)
|          ^^ dovresti mettere $s, in caso contrario è implicito $_
| 
| se vuoi usare $_ implicitamente, allora modifica leggermente il tuo
| blocco
no. $s e' una variabile indifferente da @list. effettivamente dovevo
usare una while anziche' un foreach.
ecco, cosi' funziona:
$ct=0;
while($ct<=$#id_azienda)
  {
  $_=$tmp;
  s/<\$(\w*)\[\]>/${$1}[$ct]/ge;
  s/<\$(\w*)>/${$1}/ge;
  print $_;
  $ct++;
  }
in $s ho del testo ad esempio:
<TR>
<TD>id_azienda: <$id_azienda[]></TD>
<TD>nome azienda: <$nome_azienda[]></TD>
</TR>
e cosi' il codice compilera' delle righe di tabella per ogni
@id_azienda
ciao
Oha

On Thu, 23 Sep 1999 10:06:47 GMT, 
bale...@dada.antispam.it
 (Marco
Balestra) wrote:
| >  $s_=s/<\$(.\w)[]>/${$1}[$lp]/;
|    $s_=s/<\$(.\w)\[\]>/${$1}[$lp]/e;
si, dato che 'non costano nulla' :)
Oha

   $s_=$s;



Per favore, scrivi il codice giusto e poi ti potremo far sapere qualcosa,
perche' quello che c'e' e' palesemente sbagliato. $s_ che sarebbe?
Le RE poi non hanno senso. Nessuno.
Se poi spieghi meglio il tuo problema, ad esempio con un esempio VERO
di cosa c'e' in $s e quale dovrebbe essere il risultato di tutta
l'operazione, ci capiremmo ancora di piu'.
Maurizio
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

si, dato che 'non costano nulla' :)
No, in questo caso IMHO serve proprio; altrimenti il Perl non
considera le parentesi come tali ma come espressioni della RE (anche
se non ci sono possibili alternative tra [ e ]).


Newsgroup: it.comp.lang.perl
Titolo: Array associativi

Ciao a tutti,
potreste spiegarmi come si fa a scorrere in modo sequenziale un array
associativo che ha per etichette delle stringhe non ordinate
alfabeticamente?
Grazie,
Giuseppina

Puoi usare la funzione values:
@valori=values(%hash);
Ovviamente in @valori hai tutti i valori dell'array che puoi scorrere con un
foreach
Ciao
-- 
Posted from 
relay3.inwind.it
 [212.141.53.74] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG



prova con la seguente linea:
while (($chiave, $valore) = each (%array_associativo))
{
...blocco di istruzioni
}
in questo modo ogni coppia chiave-valore viene estratta con each
in maniera sequenziale ( grazie all'iterazione while) e memorizzata
nelle variabili $chiave e $valore.
Spero che ciň ti sia d'aiuto.
Saluti chamillo.

 ha scritto nel messaggio
news:000301c09cd3$9f52a540$0601a8c0@dvd...
