Perl - escalares
Um escalar é uma única unidade de dados. Esses dados podem ser um número inteiro, ponto flutuante, um caractere, uma string, um parágrafo ou uma página da web inteira.
Aqui está um exemplo simples de uso de variáveis escalares -
#!/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";
Isso produzirá o seguinte resultado -
Age = 25
Name = John Paul
Salary = 1445.5
Escalares Numéricos
Um escalar é geralmente um número ou uma string. O exemplo a seguir demonstra o uso de vários tipos de escalares numéricos -
#!/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";
Isso produzirá o seguinte resultado -
integer = 200
negative = -300
floating = 200.34
bigfloat = -1.2e-23
octal = 255
hexa = 255
Escalares de corda
O exemplo a seguir demonstra o uso de vários tipos de escalares de string. Observe a diferença entre strings entre aspas simples e strings entre aspas duplas -
#!/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";
Isso produzirá o seguinte resultado -
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
Operações Escalares
Você verá um detalhe de vários operadores disponíveis em Perl em um capítulo separado, mas aqui vamos listar algumas operações numéricas e de string.
#!/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";
Isso produzirá o seguinte resultado -
str = helloworld
num = 15
mul = 20
mix = helloworld15
Multiline Strings
Se você quiser introduzir strings de várias linhas em seus programas, você pode usar as aspas simples padrão conforme abaixo -
#!/usr/bin/perl
$string = 'This is
a multiline
string';
print "$string\n";
Isso produzirá o seguinte resultado -
This is
a multiline
string
Você pode usar a sintaxe do documento "aqui" também para armazenar ou imprimir multilinhas como abaixo -
#!/usr/bin/perl
print <<EOF;
This is
a multiline
string
EOF
Isso também produzirá o mesmo resultado -
This is
a multiline
string
V-Strings
Um literal no formato v1.20.300.4000 é analisado como uma string composta de caracteres com os ordinais especificados. Esta forma é conhecida como v-strings.
Uma v-string fornece uma maneira alternativa e mais legível de construir strings, em vez de usar a forma de interpolação um pouco menos legível "\ x {1} \ x {14} \ x {12c} \ x {fa0}".
Eles são qualquer literal que comece com av e seja seguido por um ou mais elementos separados por pontos. Por exemplo -
#!/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";
Isso também produzirá o mesmo resultado -
smile = ☺
foo = foo
martin = Martin
Wide character in print at main.pl line 7.
Literais Especiais
Até agora, você deve ter uma ideia sobre os escalares de string e sua operação de concatenação e interpolação. Então, deixe-me falar sobre três literais especiais __FILE__, __LINE__ e __PACKAGE__ representam o nome do arquivo atual, o número da linha e o nome do pacote naquele ponto do seu programa.
Eles podem ser usados apenas como tokens separados e não serão interpolados em strings. Verifique o exemplo abaixo -
#!/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";
Isso produzirá o seguinte resultado -
File name hello.pl
Line Number 4
Package main
__FILE__ __LINE__ __PACKAGE__