PDA

Visualizza la versione completa : lunghezza variabile e controllo valore numerico


roboro
10-01-2005, 17:36
Ciao a tutti,

ho due varabile:

$descrizione='prova uno prova";

come faccio a verificare che la variabile $descrizione non sia superiore a 128 caratteri

Inoltre, come faccio a verificare che la variabile:

$costo=20_;

sia numerica e non contenga char?

grazie mille

Mich_
10-01-2005, 17:52
1.
length($descrizione)
http://www.perldoc.com/perl5.6.1/pod/func/length.html

2.
$costo ~= /^[\d_]+$/;

oppure:
$costo ~= /^[^a-zA-Z]+$/;
http://www.perldoc.com/perl5.6.1/pod/perlre.html

roboro
10-01-2005, 17:52
il problema della lunghezza l' ho risolto, non riesco a capire come fare per sapere se una stringa contiene numeri o caratteri...

shishii
10-01-2005, 18:02
Dipende cosa intendi.

Il Perl non è un linguaggio 'tipato', cioè non fa una vera differenza tra numeri (interi, float, double, ecc.) e caratteri (char, stringhe, ecc.). Il che significa che per Perl
$ab = 1;
e
$ab = '1';

equivalgono, mentre in C e in Java il primo sarebbe un numero 'int' il secondo sarebbe una char.

Per cui puoi usare metodi indiretti come quelli suggeriti da Mich_, in particolare suggerisco:

if ($var =~ /[^0-9]/) {
print "Non è un numero\n";
}

che ti dice che se nella variabile è contenuto alcunchè, in qualunque posizione, non sia un numero, tutto è un NON numero (char o stringa), altrimenti è un numero.

Mich_
10-01-2005, 18:03
Con le RE, come ti ho spiegato.
Le forme piu` semplici delle RE sono uguali a quelle in JS (anche se la sintassi esterna alla RE e` diversa).

Esempio:
$costo ~= /^([\d_]+)$/
if(length($1)>1) print"costo contiene solo numeri e _\n";

roboro
11-01-2005, 09:50
perfetto tutto funziona grazie mille...ciao

Loading