Perl - Tổng quan về cú pháp

Perl mượn cú pháp và khái niệm từ nhiều ngôn ngữ: awk, sed, C, Bourne Shell, Smalltalk, Lisp và thậm chí cả tiếng Anh. Tuy nhiên, có một số khác biệt nhất định giữa các ngôn ngữ. Chương này được thiết kế để giúp bạn nhanh chóng bắt kịp cú pháp được mong đợi trong Perl.

Một chương trình Perl bao gồm một chuỗi các khai báo và câu lệnh, chạy từ trên xuống dưới. Vòng lặp, chương trình con và các cấu trúc điều khiển khác cho phép bạn nhảy xung quanh trong mã. Mọi câu lệnh đơn giản phải kết thúc bằng dấu chấm phẩy (;).

Perl là một ngôn ngữ dạng tự do: bạn có thể định dạng và thụt lề cho nó theo cách bạn muốn. Khoảng trắng chủ yếu dùng để phân tách các mã thông báo, không giống như các ngôn ngữ như Python, nơi nó là một phần quan trọng của cú pháp hoặc Fortran nơi nó là phi vật chất.

Chương trình Perl đầu tiên

Lập trình chế độ tương tác

Bạn có thể sử dụng trình thông dịch Perl với -etại dòng lệnh, cho phép bạn thực thi các câu lệnh Perl từ dòng lệnh. Hãy thử một cái gì đó tại $ prompt như sau:

$perl -e 'print "Hello World\n"'

Việc thực thi này sẽ tạo ra kết quả sau:

Hello, world

Lập trình chế độ tập lệnh

Giả sử bạn đã ở trên $ prompt, hãy mở tệp văn bản hello.pl bằng trình chỉnh sửa vi hoặc vim và đặt các dòng sau vào tệp của bạn.

#!/usr/bin/perl

# This will print "Hello, World"
print "Hello, world\n";

Đây /usr/bin/perlthực tế là nhị phân trình thông dịch perl. Trước khi bạn thực thi tập lệnh của mình, hãy đảm bảo thay đổi chế độ của tệp tập lệnh và cấp quyền thực thi, nói chung cài đặt 0755 hoạt động hoàn hảo và cuối cùng bạn thực thi tập lệnh trên như sau:

$chmod 0755 hello.pl
$./hello.pl

Việc thực thi này sẽ tạo ra kết quả sau:

Hello, world

Bạn có thể sử dụng dấu ngoặc đơn cho các đối số của hàm hoặc bỏ qua chúng theo sở thích cá nhân của bạn. Họ chỉ được yêu cầu thỉnh thoảng làm rõ các vấn đề ưu tiên. Hai câu lệnh sau đây tạo ra cùng một kết quả.

print("Hello, world\n");
print "Hello, world\n";

Phần mở rộng tệp Perl

Một tập lệnh Perl có thể được tạo bên trong bất kỳ chương trình soạn thảo văn bản đơn giản thông thường nào. Có một số chương trình có sẵn cho mọi loại nền tảng. Có rất nhiều chương trình được chỉ định cho các lập trình viên có sẵn để tải xuống trên web.

Theo quy ước Perl, tệp Perl phải được lưu với phần mở rộng tệp .pl hoặc .PL để được công nhận là tập lệnh Perl đang hoạt động. Tên tệp có thể chứa số, ký hiệu và chữ cái nhưng không được chứa khoảng trắng. Sử dụng dấu gạch dưới (_) ở các vị trí của khoảng trắng.

Nhận xét trong Perl

Nhận xét trong bất kỳ ngôn ngữ lập trình nào là bạn của các nhà phát triển. Các chú thích có thể được sử dụng để làm cho chương trình thân thiện với người dùng và chúng chỉ được trình thông dịch bỏ qua mà không ảnh hưởng đến chức năng mã. Ví dụ, trong chương trình trên, một dòng bắt đầu bằng băm# là một bình luận.

Đơn giản chỉ cần nói nhận xét trong Perl bắt đầu bằng biểu tượng băm và chạy đến cuối dòng -

# This is a comment in perl

Các dòng bắt đầu bằng = được hiểu là phần bắt đầu của một phần của tài liệu nhúng (pod) và tất cả các dòng tiếp theo cho đến khi dấu = cắt tiếp theo bị trình biên dịch bỏ qua. Sau đây là ví dụ -

#!/usr/bin/perl

# This is a single line comment
print "Hello, world\n";

=begin comment
This is all part of multiline comment.
You can use as many lines as you like
These comments will be ignored by the 
compiler until the next =cut is encountered.
=cut

Điều này sẽ tạo ra kết quả sau:

Hello, world

Khoảng trắng trong Perl

Một chương trình Perl không quan tâm đến khoảng trắng. Chương trình sau hoạt động hoàn toàn tốt -

#!/usr/bin/perl

print       "Hello, world\n";

Nhưng nếu khoảng trắng nằm bên trong các chuỗi được trích dẫn, thì chúng sẽ được in như hiện tại. Ví dụ -

#!/usr/bin/perl

# This would print with a line break in the middle
print "Hello
          world\n";

Điều này sẽ tạo ra kết quả sau:

Hello
          world

Tất cả các loại khoảng trắng như dấu cách, tab, dòng mới, v.v. đều tương đương với trình thông dịch khi chúng được sử dụng bên ngoài dấu ngoặc kép. Một dòng chỉ chứa khoảng trắng, có thể kèm theo chú thích, được gọi là dòng trống và Perl hoàn toàn bỏ qua nó.

Báo giá đơn và báo giá kép trong Perl

Bạn có thể sử dụng dấu ngoặc kép hoặc dấu nháy đơn xung quanh các chuỗi ký tự như sau:

#!/usr/bin/perl

print "Hello, world\n";
print 'Hello, world\n';

Điều này sẽ tạo ra kết quả sau:

Hello, world
Hello, world\n$

Có một sự khác biệt quan trọng trong dấu ngoặc kép và đơn. Chỉ dấu ngoặc képinterpolatebiến và các ký tự đặc biệt, chẳng hạn như dòng mới \ n, trong khi một dấu ngoặc kép không nội suy bất kỳ biến hoặc ký tự đặc biệt nào. Kiểm tra ví dụ dưới đây, nơi chúng tôi đang sử dụng $ a làm biến để lưu trữ một giá trị và sau đó in giá trị đó -

#!/usr/bin/perl

$a = 10;
print "Value of a = $a\n";
print 'Value of a = $a\n';

Điều này sẽ tạo ra kết quả sau:

Value of a = 10
Value of a = $a\n$

Tài liệu "Đây"

Bạn có thể lưu trữ hoặc in văn bản nhiều dòng một cách thoải mái. Thậm chí bạn có thể sử dụng các biến bên trong tài liệu "here". Dưới đây là một cú pháp đơn giản, hãy kiểm tra cẩn thận không được có khoảng trắng giữa dấu << và mã định danh.

Số nhận dạng có thể là một từ trống hoặc một số văn bản được trích dẫn như chúng tôi đã sử dụng EOF bên dưới. Nếu mã định danh được trích dẫn, loại trích dẫn bạn sử dụng sẽ xác định cách xử lý văn bản bên trong biểu tượng tại đây, giống như trong trích dẫn thông thường. Một mã định danh không được trích dẫn hoạt động giống như dấu ngoặc kép.

#!/usr/bin/perl

$a = 10;
$var = <<"EOF";
This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

$var = <<'EOF';
This is case of single quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

Điều này sẽ tạo ra kết quả sau:

This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be
interpolated. For example value of a = 10

This is case of single quote so variable value will be
interpolated. For example value of a = $a

Nhân vật đang chạy trốn

Perl sử dụng ký tự gạch chéo ngược (\) để thoát khỏi bất kỳ loại ký tự nào có thể ảnh hưởng đến mã của chúng tôi. Hãy lấy một ví dụ mà chúng ta muốn in dấu ngoặc kép và dấu $ -

#!/usr/bin/perl

$result = "This is \"number\"";
print "$result\n";
print "\$result\n";

Điều này sẽ tạo ra kết quả sau:

This is "number"
$result

Định danh Perl

Định danh Perl là tên được sử dụng để xác định một biến, hàm, lớp, mô-đun hoặc đối tượng khác. Tên biến Perl bắt đầu bằng $, @ hoặc% theo sau là không hoặc nhiều chữ cái, dấu gạch dưới và chữ số (0 đến 9).

Perl không cho phép các ký tự dấu câu như @, $ và% trong số nhận dạng. Perl là mộtcase sensitivengôn ngữ lập trình. Như vậy$Manpower$manpower là hai định danh khác nhau trong Perl.