Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Grejo
    Registrato dal
    Jan 2003
    Messaggi
    838

    Ma come funziona ... ???

    Su una guida al Perl ho letto che l'interprete ogni volta che controla il codice di uno script "decide" se le variabili scalari devono essere considerate come stringhe o numeri. Quando io scrivo una stringa e la pongo come un termine di una somma, come fà l'interprete a "trovare" un valore numerico dalla stringa?

    $tmp=5+"4 euro"+5; #Qui tmp dovrebbe risultare uguale a 14!
    $tmp2=5+"4 euro e 50 centesimi"+5; #Qui cosa dovrebbe risultare?

    Ciao e Grazie in anticipo per le vostre risposte.
    Grejo.
    Nato per essere un vincente, vivo per dimostrarlo!

    Paperino si fà le paperine ed è contento,
    Topolino si fà le topoline ed è contento,
    Pippo non è contento.

  2. #2

    Re: Ma come funziona ... ???

    Originariamente inviato da Grejo
    Su una guida al Perl ho letto che l'interprete ogni volta che controla il codice di uno script "decide" se le variabili scalari devono essere considerate come stringhe o numeri. Quando io scrivo una stringa e la pongo come un termine di una somma, come fà l'interprete a "trovare" un valore numerico dalla stringa?

    $tmp=5+"4 euro"+5; #Qui tmp dovrebbe risultare uguale a 14!
    $tmp2=5+"4 euro e 50 centesimi"+5; #Qui cosa dovrebbe risultare?

    Ciao e Grazie in anticipo per le vostre risposte.
    Grejo.

    Ciao,

    sì, l'interprete perl è un po' strano.
    In entrambe le due righe di codice ritorna il valore 14.
    In pratica una stringa viene considerata un numero fino a quando non trova un carattere non numero.
    Nel primo caso è un numero solo 4 perchè poi segue lo spazio.
    Nella seconda riga è lo stesso. Legge "4" ma poi si ferma perchè trova uno spazio e il resto non lo considera.
    Per le strighè così usa le espressioni regolari.

    Se sai che all'interno di una stringa ci deve essere un numero puoi usare questa riga di codice:
    $tmp ="Ho vinto 50 euro ieri";
    if ($tmp=~ m/(\d+)/) {
    print "trovato il numero $1\n";
    } else {
    print "non ci sono numeri nella stringa\n";
    }


    ciao

  3. #3
    Utente di HTML.it L'avatar di Grejo
    Registrato dal
    Jan 2003
    Messaggi
    838
    Ho capito ... Grazie mille ... Ciao ... !!!
    Nato per essere un vincente, vivo per dimostrarlo!

    Paperino si fà le paperine ed è contento,
    Topolino si fà le topoline ed è contento,
    Pippo non è contento.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.