• Không có kết quả nào được tìm thấy

NGÔN NGỮ & HÀM TRONG PERL

N/A
N/A
Protected

Academic year: 2022

Chia sẻ "NGÔN NGỮ & HÀM TRONG PERL"

Copied!
35
0
0

Loading.... (view fulltext now)

Văn bản

(1)

Nhóm 7

NHÓM 7:

NHÓM 7:

NGUYỄN THỊ MỸ DUNG

NGUYỄN THỊ MỸ DUNG 070066T070066T TRƯƠNG TRUNG HIẾU

TRƯƠNG TRUNG HIẾU 070112T070112T HUỲNH THỊ NGỌC HƯƠNG

HUỲNH THỊ NGỌC HƯƠNG 070080T070080T

GIỚI THIỆU

NGÔN NGỮ & HÀM TRONG PERL

ĐỀ TÀI:

(2)

NỘI DUNG:

NỘI DUNG:

I. Giới thiệu sơ lược về Perl I. Giới thiệu sơ lược về Perl

II. Sơ lược về Nhập – Xuất II. Sơ lược về Nhập – Xuất

III. Hàm III. Hàm

(3)

3

I. I. Giới thiệu sơ lược về Perl Giới thiệu sơ lược về Perl

1.1. Tên gọiTên gọi 2.2. Lịch sửLịch sử

3.3. Đặc điểm & Thế mạnhĐặc điểm & Thế mạnh 4.4. Biểu tượngBiểu tượng

(4)

I.1. Tên gọi:

I.1. Tên gọi:

 Perl là tên viết tắt của Practical Extraction Perl là tên viết tắt của Practical Extraction and Report Language – ngôn ngữ kết xuất and Report Language – ngôn ngữ kết xuất

và báo cáo thực dụng.

và báo cáo thực dụng.

(5)

5

I.2. I.2. Lịch sử Lịch sử

 Perl được Larry Wall xây dựng từ năm Perl được Larry Wall xây dựng từ năm 1987 và đưa ra phiên bản đầu tiên.

1987 và đưa ra phiên bản đầu tiên.

 Phiên bản thứ 2 ra đời vào năm 1988, sau Phiên bản thứ 2 ra đời vào năm 1988, sau đó 1 năm thì cho ra đời phiên bản thứ 3.

đó 1 năm thì cho ra đời phiên bản thứ 3.

 Năm 1991, cuốn sách Programming PerlNăm 1991, cuốn sách Programming Perl

đã được xuất bản, đồng thời phiên bản thứ đã được xuất bản, đồng thời phiên bản thứ

4 cũng ra đời và là phiên bản đầu tiên 4 cũng ra đời và là phiên bản đầu tiên

được viết trong sách được viết trong sách.

(6)

I.3. I.3. Đặc điểm & Thế mạnh: Đặc điểm & Thế mạnh:

 Perl là một ngôn ngữ mạnh mẽ trong việc quản trị hệ thống Unix.

 Là loại ngôn ngữ ngữ pháp cơ bản trong việc xử lý văn bản cấp cao.

 Có khả năng chắt lọc một lượng lớn dữ liệu và cho phép xử lý dữ liệu nhằm thu được kết quả cần tìm.

(7)

7

I.3. I.3. Đặc điểm & Thế mạnh(tt) Đặc điểm & Thế mạnh(tt) : :

 Perl là ngôn ngữ thông dụng trong lĩnh vực quản trị hệ thống và xử lý các trang Web do có các ưu điểm sau:

Có các thao tác quản lý tập tin, xử lý thông tin thuận tiện.

Thao tác với chuỗi ký tự rất tốt.

Đã có một thư viện mã lệnh lớn do cộng đồng sử dụng Perl đóng góp (CPAN).

(8)

I.3. I.3. Đặc điểm & Thế mạnh(tt) Đặc điểm & Thế mạnh(tt) : :

 Cú pháp lệnh của Perl khá giống với C.

Perl có sức mạnh và sự linh hoạt của ngôn ngữ lập trình cấp cao C.

 Giống như các ngôn ngữ shell scripts, Perl không đòi hỏi biên dịch và link mã nguồn, thay vào đó chỉ cần gọi Perl thực thi

chương trình đó.

 Chạy được trên nhiều platfrom: UNIX, DOS, WINDOWS.

(9)

9

I.3. I.3. Đặc điểm & Thế mạnh(tt) Đặc điểm & Thế mạnh(tt) : :

 Perl chuyên về xử lý text, có nhiều hàm build-in, thích hợp với xử lý trang web trong thế giới WWW.

 Ngoài ra Perl còn rất nhiều điểm mạnh như của các ngôn ngữ lập trình khác.

(10)

I.4. I.4. Biểu tượng: Biểu tượng:

Cuốn sách Programming Perl, xuất bản bởi O'Reilly Media, với trang bìa là bức ảnh 1 con lạc đà. Từ đó, lạc đà trở thành biểu tượng của ngôn ngữ Perl.

(11)

11

II. Nhập xuất:

1. Nhập

2. Xuất

(12)

II.1. Nhập:

Nhập vào từ STDIN

Toán tử <STDIN> là toán tử vào chuẩn.

Trong ngữ cảnh vô hướng thì nó trả về một dòng của cái đang được nhập vào, hoặc undef nếu không còn dòng nào nữa.

$a = <STDIN>; # đọc dòng tiếp theo

Trong ngữ cảnh mảng nó sẽ cho ta tất cả các dòng còn lại như một danh sách - mỗi phần tử của danh sách này là một dòng, bao gồm cả ký tự xuống dòng mới của nó.

@a = <STDIN>;

(13)

13

II.2. Xuất:

Đưa ra bằng STDOUT

 Perl dùng các toán tử print và printf để ghi/

xuất dữ liệu ra STDOUT.

 Toán tử print nhận một danh sách các xâu, và gửi lần lượt từng xâu ra STDOUT.

VD:

$a = print ("xin chao", "moi nguoi", "\n");

 Giá trị trả lại của print là một giá trị đúng hay sai, chỉ ra sự thành công của việc in.

Vì thế giá trị trả về của $a là bao nhiêu?

(14)

II.2. Xuất(tt):

Việc dùng dấu ngoặt tròn trong “print”:

print (2+3), "xin chao"; # Sai! in 5, bỏ qua "xin chao“

print ((2+3), "xin chao"); # Đúng! in "5xin chao“

print 2+3, "xin chao"; # Cũng đúng! in

(15)

15

III. III. HÀM: HÀM:

Nội dung:

1. Xác định một hàm tiện ích 2. Gọi một hàm tiện ích

3. Giá trị trả về

4. Đối số của hàm

5. Biến cục bộ trong hàm

(16)

III.1.

III.1. Xác định một hàm tiện ích:

Một hàm tự tạo, thường hay được gọi là chương trình con hay trình con, được xác định trong chương trình Perl của bạn bằng việc dùng một kết cấu như:

Sub subname { cau lenh 1;

cau lenh 2;

cau lenh 3;

....

(17)

17

III.1.

III.1. Xác định một hàm tiện ích(tt):

Sub: là từ khoá của mọi chương trình con.

Subname: là tên của chương trình con, được đặt bởi một tên bất kỳ nhưng không được trùng với tên của các hàm đã được định nghĩa sẵn kể cả từ “sub”.

Khối các câu lệnh đi sau tên trình con trở thành định nghĩa của trình con.

VD:VD:

sub say_hello { sub say_hello {

print "Xin chao moi nguoi!\n";

print "Xin chao moi nguoi!\n";

}}

(18)

 Các định nghĩa trình con là toàn cục, không Các định nghĩa trình con là toàn cục, không có trình con cục bộ.

có trình con cục bộ.

 Bên trong thân trình con, bạn có thể thâm Bên trong thân trình con, bạn có thể thâm nhập hay đặt các giá trị cho các biến được nhập hay đặt các giá trị cho các biến được

dùng chung với phần còn lại của chương dùng chung với phần còn lại của chương

trình (

trình (biến toàn cục).biến toàn cục).

VD:VD:

sub say_what { sub say_what {

print "Xin chao, $what\n";

print "Xin chao, $what\n";

}}

III.1.

III.1. Xác định một hàm tiện ích(tt):

(19)

19

III.1.

III.1. Xác định một hàm tiện ích(tt):

 Chương trình con có thể đặt ở bất kì đâu trong chương trình chính hoăc có thể lưu chương trình con vào một tập tin riêng.

 Chương trình con có tính chất toàn cục,

nghĩa là khi hai chương trình con trùng tên thì chúng sẽ chồng lên nhau.

(20)

III.2.

III.2. Gọi một hàm tiện ích:

Khi muốn gọi chương trình con thì ta dùng Khi muốn gọi chương trình con thì ta dùng

câu lệnh sau:

câu lệnh sau:

&subname[(danh sách tham số)];

&subname[(danh sách tham số)];

hoặc hoặc

subname();

subname();

(21)

21

III.2.

III.2. Gọi một hàm tiện ích(tt):

VD:VD:

say_hello();

say_hello(); #mot bieu thuc don gian #mot bieu thuc don gian

$a = 3 + say_hello();

$a = 3 + say_hello(); #mot bieu thuc kep #mot bieu thuc kep for ($x = start_value();$x < end_value();

for ($x = start_value();$x < end_value();

$x += increment())

$x += increment()) {{

...

...

}} #goi 3 trinh con#goi 3 trinh con

(22)

III.2.

III.2. Gọi một hàm tiện ích(tt):

 Một trình con có thể gọi một trình con khác.

 Một chương trình con có thể được gọi từ một tập tin bên ngoài bằng cách sau:

require ‘filename.lib’;

 Với filename.lib là tên của tập tin chứa chương trình con cần gọi.

(23)

23

III.2.

III.2. Gọi một hàm tiện ích(tt):

 Nếu chương trình con có giá trị trả về, bạn sử dụng toán tử gán:

name = &subname[(danh sách tham số)];

hoặc name = subname();

Trong đó name có thể là biến vô hướng hoặc là mảng.

(24)

III.2.

III.2. Gọi một hàm tiện ích(tt):

 Bạn có thể gán ngược lại, xem ví dụ sau:

$firstVar = "0123BBB789"

substr($firstVar, 4, 3) = "AAA";

# substr trả về chuỗi con BBB của

$firstVar dài 3 ký tự

# kể từ vị trí thứ 4 của chuỗi $firstVar

# Đoạn chương trình cho $firstVar là

“0123AAA789”

(25)

25

III.3. Giá trị trả về:

 Giá trị của việc gọi trình con được gọi là giá trị trả lại.

Giá trị trả lại của một trình con là giá trị

của biểu thức cuối cùng được tính bên trong thân của trình con cho mỗi lần gọi.

VD:

sub sum_of_a_and_b { $a + $b;

}

hay ta dùng return

sub sum_of_a_and_b { $a + $b;

}

(26)

III.3. Giá trị trả về(tt):

VD:

sub gime_a_or_b { if ($a > 0) {

print "chon a ($a)\n";

$a;

} else {

print "chọn b ($b)\n";

$b;

} }

Trình con này cho lại $a nếu $a > 0, ngoài

(27)

27

III.4. Đối số của hàm:

 Khi bạn truyền đối số trong lời gọi hàm, các đối số được đưa vào một danh sách cục bộ có tên là @_.

 Trong thân chương trình con, bạn lấy giá trị các đối số đó thông qua @_.

 Biến @_ là cục bộ cho trình con.

 Một trình con có thể truyền các đối cho một trình con khác

(28)

III.4. Đối số của hàm(tt):

Xét ví dụ:

sub say_hello_to {

print "Hello, $_[0]!\n";

}

print say_hello_to(“World”);

# In ra HelloWorld với $_[0] chính là phần tử đầu tiên của mảng @_

(29)

29

III.4. Đối số của hàm(tt):

VD: Dùng nhiều hơn một tham biến.

sub say {

print "$_[0], $_[1]!\n";

}say("hello", "world"); #hello, world!

say ("goodbye", "cruel world");

 Các tham biến vượt quá đều bị bỏ.

 Các tham số không đủ cũng bị bỏ qua.

 Nhận được undef nếu bạn nhìn vượt ra phần tử cuối của mảng @_, như với mọi mảng khác.

(30)

III.4. Đối số của hàm(tt):

VD:

sub add_two { $_[0] + $_[1];

}print add_two(3, 4); #in 7

$c = add_two(5, 6); #$c = 11

Hai giá trị $_[0] & $_[1] được truyền cho trình con này như tham biến.

(31)

31

III.5. Biến cục bộ trong hàm:

 Để khai báo một biến, mảng, … cục bộ trong nội dung của hàm (biến, mảng, … này không còn tồn tại khi hàm kết thúc) bạn đặt my hoặc local trước khai báo biến này.

 Nên nhóm tất cả các toán tử my() vào phần đầu định nghĩa chương trình con.

(32)

III.5. Biến cục bộ trong hàm(tt):

Xét VD:

sub add {

my $sum = 0 ; #tao bien cuc bo $sum va khoi tao gia tri =0

foreach $_ (@_ ) {

$sum += $_ ; #cong tung phan tu }

return $sum; #tra ve ket qua

}$a = add(4,5,6) ; #cong 4+5+6 = 15, va gan cho $a

print add(1,2,3,4,5) ; #in ra 15

print add(1..5); #cung in ra 15, vi 1..5

(33)

33

III.5. Biến cục bộ trong hàm(tt):

sub bigger_than {

my ($n, @values); #tao ra cac bien cuc bo

($n, @values) = @_; #khoi tao gia tri cho bien cuc bo, thuc chat la lay gia tri tu cac tham so my (@result); #them 1 bien cuc bo nua

foreach $_ (@values) { #duyet danh sach cac gia tri

if ($_ > $n) { #phan tu nay co gia tri lon hon

$n (=50, 100 hay gia tri nao do)

push (@result, $_) ; #dua vao danh sach neu hop le

}

return @result; #tra ve ket qua }

(34)

III.5. Biến cục bộ trong hàm(tt):

VD:

@new = bigger_than(100, @list);

#tim cac phan tu lon hon 100 trong mang @list

@this = bigger_than(5,1,5,15,30);

#tim cac phan tu lon hon 5 trong danh sach, ket qua la (15, 30)

(35)

35

III.6. Một số hàm cơ bản:

 Trong PERL có rất nhiều hàm chuẩn.

 Một số hàm thường gặp như: print, chop, chomp, int, oct, ord, ...

 Trong phần mảng thường dùng các hàm:

grep, splice, shift, unshift, push, … hay

trong phần tệp hay sử dụng các hàm như:

open, close, split, ...

Tài liệu tham khảo

Tài liệu liên quan

Chúng tôi tiến hành khảo sát khả năng sử dụng ngôn ngữ toán học của học sinh về các vấn đề: khả năng đọc, viết các kí hiệu và thuật ngữ toán học; khả năng tính toán của

Trong trường hợp đỉnh u đã được thăm mà mọi đỉnh lân cận của nó đã được thăm rồi thì ta quay lại đỉnh cuối cùng vừa được thăm ( mà đỉnh này còn đỉnh w là lân cận

- Muốn viết bài giới thiệu về một danh lam thắng cảnh thì tốt nhất phải đến nơi thăm thú, quan sát hoặc tra cứu sách vở, hỏi han những người hiểu biết về nơi ấy. -

Trong khuôn khổ bài viết này, chúng tôi lựa chọn ngẫu nhiên 500 thuật ngữ chuyên ngành công an trong tiếng Hán hiện đại làm ngữ liệu, thông qua khảo sát và phân tích

Tìm một phần trong các phần bằng nhau của một số... HOA SEN

(Nguyễn Đình Thi, Tia nắng, NXB Văn học, Hà Nội - 1983) Từ ý nghĩa văn bản trên, em hãy viết một bài văn ngắn (khoảng 01 trang giấy thi) trình bày suy nghĩ của em về

Chính vì vậy, việc đánh giá khả năng sinh trưởng, phát triển nhằm đề xuất các dòng, giống lạc có chỉ tiêu nông sinh học và năng suất cao ở vụ xuân và vụ thu là

Đối với tất cả các danh sách truy cập của giao thức TCP/IP này, sau khi một gói tin được kiểm tra để khớp một lệnh trong danh sách, nó có thể bị từ chối hoặc cấp phép để