Newsgroup: it.comp.lang.perl
Titolo: Lettura stringa carattere per carattere.

Ho un piccolo problema come faccio a leggere una stringa carattere per
carattere partendo dall'ultimo fino al primo.
Grazie
Latino

 
 my $string = "foobar";
 for $char( reverse split //, $string ) {
	print $char;
 }
Ovviamente... TMTOWTDI.
MM

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

 wrote:
" >Ho un piccolo problema come faccio a leggere una stringa carattere per
" >carattere partendo dall'ultimo fino al primo.
" 
" $lung=length($stringa)-1;
" for (i=$lung;$i>-1;$i--) { print substr($stringa,$i,1) }
$stringa = scalar(reverse($stringa)) ; 
ciao, .mau.

$stringa = scalar(reverse($stringa)) ;
Beh, sono qui per imparare :-)))
Tenchiu'


 wrote:
" >$stringa = scalar(reverse($stringa)) ;
" 
" Beh, sono qui per imparare :-)))
don't worry, sto facendomi un corso accelerato di Perl e quindi certe cose
rimangono impresse (anche se ero convinto bastasse il reverse :-( )
ciao, .mau.

On 15 Sep 1999 17:00:09 +0200, 
m...@beatles.cselt.it
 (Maurizio Codogno)
wrote:
| don't worry, sto facendomi un corso accelerato di Perl e quindi certe cose
| rimangono impresse (anche se ero convinto bastasse il reverse :-( )
io ho usato solo il 'reverse' ed ha funzionato. :-?
Oha

 
In effetti basta il reverse, se il contesto è scalare. 
Ad es:
 print reverse("ciao"); # contesto di lista
stampa "ciao" , mentre...
 print ($a = reverse("ciao"));  # contesto scalare
stampa "oaic".
MM

 wrote:
" | don't worry, sto facendomi un corso accelerato di Perl e quindi certe cose
" | rimangono impresse (anche se ero convinto bastasse il reverse :-( )
" 
" io ho usato solo il 'reverse' ed ha funzionato. :-?
Perche` io avevo scritto
print reverse($stringa) ;
e naturalmente ero finito in list context :-(((
ciao, .mau.

 carattere partendo dall'ultimo fino al primo.
Perche'? 
Sei sicuro che sia esattamente quello che ti serve?
Non e' che pensi in C?
 @array_caratteri_inverso = reverse split '', $stringa;
Se non vuoi l'array, un substr() in un for puo' anche andar bene...
 for ($i = 0; $i < length $stringa ; $i++)
   {
     $carattere = substr($stringa,-$i-1,1)
   }
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

 bastasse il reverse :-( )
  Lo sono anch'io, in effetti: nel caso in esame, l'invocazione di
'scalar' e` ridondante.
	Alla prossima,
		Marco




Ma la domanda originale non si riferiva alla lettura dei caratteri, UNO ALLA
VOLTA, dal fondo?
Invertire la semplice stringa sarebbe stata una FAQ, cui avrebbe trovato
risposta nella manualistica e non avrebbe chiesto a noi! :)


 caratteri, UNO ALLA VOLTA, dal fondo?
  Infatti si`: erano giuste le risposte di Marco e "Max M.". Chissa` poi
perche` il /thread/ si e` evoluto in questa direzione...
	@trs=map { print } split //, reverse $str;
	Alla prossima,
		Marco

 wrote:
: 	@trs=map { print } split //, reverse $str;
Perche` il map?
nanux:~>perl -e '$a="ciao";@b=split //, reverse $a;print "@b\n"'
o a i c
-- 
Nando Santagata: Telemastica & infornatica
Key fingerprint = C2 D9 C0 8E D5 B7 04 97  AF E8 3F 3E AF 4E 7F 9E
finger nando (at) mail (dot) ipers (dot) net   for my PGP public key
Home: 
http://www.ipers.net/~nandos