Perl - Scalaires

Un scalaire est une seule unité de données. Ces données peuvent être un nombre entier, une virgule flottante, un caractère, une chaîne, un paragraphe ou une page Web entière.

Voici un exemple simple d'utilisation de variables scalaires -

#!/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";

Cela produira le résultat suivant -

Age = 25
Name = John Paul
Salary = 1445.5

Scalaires numériques

Un scalaire est le plus souvent un nombre ou une chaîne. L'exemple suivant montre l'utilisation de divers types de scalaires numériques -

#!/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";

Cela produira le résultat suivant -

integer = 200
negative = -300
floating = 200.34
bigfloat = -1.2e-23
octal = 255
hexa = 255

Scalaires à cordes

L'exemple suivant montre l'utilisation de divers types de scalaires de chaîne. Notez la différence entre les chaînes entre guillemets simples et les chaînes entre guillemets doubles -

#!/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";

Cela produira le résultat suivant -

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

Opérations scalaires

Vous verrez un détail des différents opérateurs disponibles en Perl dans un chapitre séparé, mais ici nous allons lister quelques opérations numériques et de chaîne.

#!/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";

Cela produira le résultat suivant -

str = helloworld
num = 15
mul = 20
mix = helloworld15

Chaînes multilignes

Si vous souhaitez introduire des chaînes multilignes dans vos programmes, vous pouvez utiliser les guillemets simples standard comme ci-dessous -

#!/usr/bin/perl

$string = 'This is
a multiline
string';

print "$string\n";

Cela produira le résultat suivant -

This is
a multiline
string

Vous pouvez également utiliser la syntaxe du document "ici" pour stocker ou imprimer des multilignes comme ci-dessous -

#!/usr/bin/perl

print <<EOF;
This is
a multiline
string
EOF

Cela produira également le même résultat -

This is
a multiline
string

Cordes en V

Un littéral de la forme v1.20.300.4000 est analysé comme une chaîne composée de caractères avec les ordinaux spécifiés. Cette forme est connue sous le nom de chaînes v.

Une chaîne V fournit une manière alternative et plus lisible de construire des chaînes, plutôt que d'utiliser la forme d'interpolation un peu moins lisible "\ x {1} \ x {14} \ x {12c} \ x {fa0}".

Il s'agit de tout littéral commençant par av et suivi d'un ou plusieurs éléments séparés par des points. Par exemple -

#!/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";

Cela produira également le même résultat -

smile = ☺
foo = foo
martin = Martin
Wide character in print at main.pl line 7.

Littéraux spéciaux

Jusqu'à présent, vous devez avoir une idée des scalaires de chaîne et de son opération de concaténation et d'interpolation. Alors laissez-moi vous parler de trois littéraux spéciaux __FILE__, __LINE__ et __PACKAGE__ représentent le nom de fichier actuel, le numéro de ligne et le nom du package à ce stade de votre programme.

Ils ne peuvent être utilisés que comme jetons séparés et ne seront pas interpolés en chaînes. Vérifiez l'exemple ci-dessous -

#!/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";

Cela produira le résultat suivant -

File name hello.pl
Line Number 4
Package main
__FILE__ __LINE__ __PACKAGE__