Perl - Scalari
Uno scalare è una singola unità di dati. Tali dati potrebbero essere un numero intero, una virgola mobile, un carattere, una stringa, un paragrafo o un'intera pagina web.
Ecco un semplice esempio di utilizzo delle variabili scalari:
#!/usr/bin/perl
$age = 25; # An integer assignment
$name = "John Paul"; # A string
$salary = 1445.50; # A floating point
print "Age = $age\n";
print "Name = $name\n";
print "Salary = $salary\n";
Questo produrrà il seguente risultato:
Age = 25
Name = John Paul
Salary = 1445.5
Scalari numerici
Uno scalare è molto spesso un numero o una stringa. L'esempio seguente dimostra l'utilizzo di vari tipi di scalari numerici:
#!/usr/bin/perl
$integer = 200;
$negative = -300;
$floating = 200.340;
$bigfloat = -1.2E-23;
# 377 octal, same as 255 decimal
$octal = 0377;
# FF hex, also 255 decimal
$hexa = 0xff;
print "integer = $integer\n";
print "negative = $negative\n";
print "floating = $floating\n";
print "bigfloat = $bigfloat\n";
print "octal = $octal\n";
print "hexa = $hexa\n";
Questo produrrà il seguente risultato:
integer = 200
negative = -300
floating = 200.34
bigfloat = -1.2e-23
octal = 255
hexa = 255
Scalari di stringa
L'esempio seguente dimostra l'utilizzo di vari tipi di scalari di stringa. Notare la differenza tra stringhe con virgolette singole e stringhe con virgolette doppie -
#!/usr/bin/perl
$var = "This is string scalar!";
$quote = 'I m inside single quote - $var';
$double = "This is inside single quote - $var";
$escape = "This example of escape -\tHello, World!";
print "var = $var\n";
print "quote = $quote\n";
print "double = $double\n";
print "escape = $escape\n";
Questo produrrà il seguente risultato:
var = This is string scalar!
quote = I m inside single quote - $var
double = This is inside single quote - This is string scalar!
escape = This example of escape - Hello, World
Operazioni scalari
Vedrai un dettaglio dei vari operatori disponibili in Perl in un capitolo separato, ma qui elencheremo alcune operazioni numeriche e sulle stringhe.
#!/usr/bin/perl
$str = "hello" . "world"; # Concatenates strings.
$num = 5 + 10; # adds two numbers.
$mul = 4 * 5; # multiplies two numbers.
$mix = $str . $num; # concatenates string and number.
print "str = $str\n";
print "num = $num\n";
print "mul = $mul\n";
print "mix = $mix\n";
Questo produrrà il seguente risultato:
str = helloworld
num = 15
mul = 20
mix = helloworld15
Stringhe multilinea
Se vuoi introdurre stringhe multilinea nei tuoi programmi, puoi usare le virgolette singole standard come di seguito -
#!/usr/bin/perl
$string = 'This is
a multiline
string';
print "$string\n";
Questo produrrà il seguente risultato:
This is
a multiline
string
Puoi anche usare la sintassi del documento "qui" per memorizzare o stampare multilinea come di seguito -
#!/usr/bin/perl
print <<EOF;
This is
a multiline
string
EOF
Questo produrrà anche lo stesso risultato:
This is
a multiline
string
V-Strings
Un valore letterale nella forma v1.20.300.4000 viene analizzato come una stringa composta da caratteri con gli ordinali specificati. Questa forma è nota come v-string.
Una v-string fornisce un modo alternativo e più leggibile per costruire stringhe, piuttosto che usare la forma di interpolazione un po 'meno leggibile "\ x {1} \ x {14} \ x {12c} \ x {fa0}".
Sono qualsiasi letterale che inizia con av ed è seguito da uno o più elementi separati da punti. Ad esempio:
#!/usr/bin/perl
$smile = v9786;
$foo = v102.111.111;
$martin = v77.97.114.116.105.110;
print "smile = $smile\n";
print "foo = $foo\n";
print "martin = $martin\n";
Questo produrrà anche lo stesso risultato:
smile = ☺
foo = foo
martin = Martin
Wide character in print at main.pl line 7.
Letterali speciali
Finora devi avere un'idea degli scalari delle stringhe e della sua concatenazione e interpolazione. Quindi lasciate che vi parli di tre letterali speciali __FILE__, __LINE__ e __PACKAGE__ rappresentano il nome del file corrente, il numero di riga e il nome del pacchetto a quel punto nel vostro programma.
Possono essere usati solo come token separati e non verranno interpolati in stringhe. Controlla l'esempio seguente:
#!/usr/bin/perl
print "File name ". __FILE__ . "\n";
print "Line Number " . __LINE__ ."\n";
print "Package " . __PACKAGE__ ."\n";
# they can not be interpolated
print "__FILE__ __LINE__ __PACKAGE__\n";
Questo produrrà il seguente risultato:
File name hello.pl
Line Number 4
Package main
__FILE__ __LINE__ __PACKAGE__