Perl - Skaler

Skaler, tek bir veri birimidir. Bu veriler bir tamsayı, kayan nokta, bir karakter, bir dize, bir paragraf veya bir web sayfasının tamamı olabilir.

İşte skaler değişkenleri kullanmanın basit bir örneği -

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

Bu, aşağıdaki sonucu verecektir -

Age = 25
Name = John Paul
Salary = 1445.5

Sayısal Skalerler

Skaler, genellikle bir sayı veya dizedir. Aşağıdaki örnek, çeşitli sayısal skaler türlerinin kullanımını göstermektedir -

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

Bu, aşağıdaki sonucu verecektir -

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

Dize Skalerleri

Aşağıdaki örnek, çeşitli dizi skalerlerinin kullanımını göstermektedir. Tek tırnaklı dizeler ile çift tırnaklı dizeler arasındaki farka dikkat edin -

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

Bu, aşağıdaki sonucu verecektir -

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

Skaler İşlemler

Perl'de bulunan çeşitli işleçlerin ayrıntılarını ayrı bir bölümde göreceksiniz, ancak burada birkaç sayısal ve dizgi işlemini listeleyeceğiz.

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

Bu, aşağıdaki sonucu verecektir -

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

Çok Satırlı Dizeler

Programlarınıza çok satırlı dizeler eklemek istiyorsanız, aşağıdaki gibi standart tek tırnak işaretlerini kullanabilirsiniz -

#!/usr/bin/perl

$string = 'This is
a multiline
string';

print "$string\n";

Bu, aşağıdaki sonucu verecektir -

This is
a multiline
string

Aşağıdaki gibi çoklu satırları saklamak veya yazdırmak için "burada" belge sözdizimini de kullanabilirsiniz -

#!/usr/bin/perl

print <<EOF;
This is
a multiline
string
EOF

Bu da aynı sonucu verecektir -

This is
a multiline
string

V-Dizeleri

V1.20.300.4000 biçimindeki bir değişmez bilgi, belirtilen sıra sayılarına sahip karakterlerden oluşan bir dize olarak ayrıştırılır. Bu form v-dizeleri olarak bilinir.

Bir v-string, "\ x {1} \ x {14} \ x {12c} \ x {fa0}" biraz daha az okunabilir enterpolasyon formunu kullanmak yerine, karakter dizileri oluşturmak için alternatif ve daha okunaklı bir yol sağlar.

Av ile başlayan ve ardından bir veya daha fazla noktayla ayrılmış öğe gelen herhangi bir değişmezdir. Örneğin -

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

Bu da aynı sonucu verecektir -

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

Özel Edebiyatlar

Şimdiye kadar dizi skalerleri ve onun birleştirme ve enterpolasyon işlemleri hakkında bir fikriniz olmalı. Öyleyse size üç özel değişmez değerden bahsedeyim __FILE__, __LINE__ ve __PACKAGE__, programınızın o noktasındaki geçerli dosya adını, satır numarasını ve paket adını temsil eder.

Yalnızca ayrı belirteçler olarak kullanılabilirler ve dizelere eklenmezler. Aşağıdaki örneği kontrol edin -

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

Bu, aşağıdaki sonucu verecektir -

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