Perl - Vô hướng
Vô hướng là một đơn vị dữ liệu duy nhất. Dữ liệu đó có thể là một số nguyên, dấu phẩy động, một ký tự, một chuỗi, một đoạn văn hoặc toàn bộ trang web.
Đây là một ví dụ đơn giản về việc sử dụng các biến vô hướng:
#!/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";
Điều này sẽ tạo ra kết quả sau:
Age = 25
Name = John Paul
Salary = 1445.5
Vô hướng số
Một đại lượng vô hướng thường là một số hoặc một chuỗi. Ví dụ sau minh họa việc sử dụng các loại vô hướng số khác nhau:
#!/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";
Điều này sẽ tạo ra kết quả sau:
integer = 200
negative = -300
floating = 200.34
bigfloat = -1.2e-23
octal = 255
hexa = 255
Chuỗi vô hướng
Ví dụ sau minh họa việc sử dụng nhiều loại chuỗi vô hướng khác nhau. Lưu ý sự khác biệt giữa chuỗi được trích dẫn đơn và chuỗi được trích dẫn kép -
#!/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";
Điều này sẽ tạo ra kết quả sau:
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
Hoạt động vô hướng
Bạn sẽ thấy chi tiết về các toán tử khác nhau có sẵn trong Perl trong một chương riêng biệt, nhưng ở đây chúng tôi sẽ liệt kê một số phép toán số và chuỗi.
#!/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";
Điều này sẽ tạo ra kết quả sau:
str = helloworld
num = 15
mul = 20
mix = helloworld15
Chuỗi nhiều dòng
Nếu bạn muốn đưa chuỗi nhiều dòng vào chương trình của mình, bạn có thể sử dụng các dấu ngoặc kép tiêu chuẩn như bên dưới:
#!/usr/bin/perl
$string = 'This is
a multiline
string';
print "$string\n";
Điều này sẽ tạo ra kết quả sau:
This is
a multiline
string
Bạn cũng có thể sử dụng cú pháp tài liệu "tại đây" để lưu trữ hoặc in nhiều dòng như bên dưới:
#!/usr/bin/perl
print <<EOF;
This is
a multiline
string
EOF
Điều này cũng sẽ tạo ra kết quả tương tự -
This is
a multiline
string
V-Strings
Một ký tự có dạng v1.20.300.4000 được phân tích cú pháp thành một chuỗi bao gồm các ký tự có thứ tự được chỉ định. Dạng này được gọi là v-string.
Chuỗi v cung cấp một cách thay thế và dễ đọc hơn để tạo chuỗi, thay vì sử dụng dạng nội suy hơi khó đọc hơn "\ x {1} \ x {14} \ x {12c} \ x {fa0}".
Chúng là bất kỳ chữ nào bắt đầu bằng av và theo sau là một hoặc nhiều phần tử được phân tách bằng dấu chấm. Ví dụ -
#!/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";
Điều này cũng sẽ tạo ra kết quả tương tự -
smile = ☺
foo = foo
martin = Martin
Wide character in print at main.pl line 7.
Chữ viết đặc biệt
Đến đây chắc hẳn bạn đã có cảm giác về chuỗi vô hướng và phép nối và phép nội suy của nó. Vì vậy, hãy để tôi cho bạn biết về ba ký tự đặc biệt __FILE__, __LINE__ và __PACKAGE__ đại diện cho tên tệp, số dòng và tên gói hiện tại tại thời điểm đó trong chương trình của bạn.
Chúng chỉ có thể được sử dụng làm mã thông báo riêng biệt và sẽ không được nội suy thành chuỗi. Kiểm tra ví dụ dưới đây -
#!/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";
Điều này sẽ tạo ra kết quả sau:
File name hello.pl
Line Number 4
Package main
__FILE__ __LINE__ __PACKAGE__