Perl - Scalars

Skalar adalah satu unit data. Data itu mungkin berupa bilangan bulat, floating point, karakter, string, paragraf, atau seluruh halaman web.

Berikut adalah contoh sederhana menggunakan variabel skalar -

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

Ini akan menghasilkan hasil sebagai berikut -

Age = 25
Name = John Paul
Salary = 1445.5

Skalar Numerik

Skalar paling sering berupa angka atau string. Contoh berikut menunjukkan penggunaan berbagai jenis skalar numerik -

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

Ini akan menghasilkan hasil sebagai berikut -

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

String Scalars

Contoh berikut menunjukkan penggunaan berbagai jenis skalar string. Perhatikan perbedaan antara string yang dikutip tunggal dan string yang dikutip ganda -

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

Ini akan menghasilkan hasil sebagai berikut -

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

Operasi Skalar

Anda akan melihat detail dari berbagai operator yang tersedia di Perl pada bab terpisah, tetapi di sini kita akan membuat daftar beberapa operasi numerik dan 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";

Ini akan menghasilkan hasil sebagai berikut -

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

String Multiline

Jika Anda ingin memperkenalkan string multiline ke dalam program Anda, Anda dapat menggunakan tanda kutip tunggal standar seperti di bawah ini -

#!/usr/bin/perl

$string = 'This is
a multiline
string';

print "$string\n";

Ini akan menghasilkan hasil sebagai berikut -

This is
a multiline
string

Anda dapat menggunakan sintaks dokumen "di sini" juga untuk menyimpan atau mencetak multilines seperti di bawah ini -

#!/usr/bin/perl

print <<EOF;
This is
a multiline
string
EOF

Ini juga akan menghasilkan hasil yang sama -

This is
a multiline
string

V-String

Literal dalam bentuk v1.20.300.4000 diurai sebagai string yang terdiri dari karakter dengan ordinal yang ditentukan. Bentuk ini dikenal sebagai v-string.

V-string menyediakan alternatif dan cara yang lebih mudah dibaca untuk membuat string, daripada menggunakan bentuk interpolasi "\ x {1} \ x {14} \ x {12c} \ x {fa0}".

Mereka adalah literal apa pun yang dimulai dengan av dan diikuti oleh satu atau beberapa elemen yang dipisahkan titik. Misalnya -

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

Ini juga akan menghasilkan hasil yang sama -

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

Literal Khusus

Sejauh ini Anda harus memiliki perasaan tentang skalar string dan operasi penggabungan dan interpolasi. Jadi izinkan saya memberi tahu Anda tentang tiga literal khusus __FILE__, __LINE__, dan __PACKAGE__ mewakili nama file saat ini, nomor baris, dan nama paket pada saat itu dalam program Anda.

Mereka hanya dapat digunakan sebagai token terpisah dan tidak akan diinterpolasi menjadi string. Lihat contoh di bawah ini -

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

Ini akan menghasilkan hasil sebagai berikut -

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