Đề tài Giới thiệu ngôn ngữ & hàm trong Perl

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, .

pdf35 trang | Chia sẻ: builinh123 | Lượt xem: 1966 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Giới thiệu ngôn ngữ & hàm trong Perl, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nhóm 7 NHÓM 7: NGUYỄN THỊ MỸ DUNG 070066T TRƯƠNG TRUNG HIẾU 070112T HUỲNH THỊ NGỌC HƯƠNG 070080T GIỚI THIỆU NGÔN NGỮ & HÀM TRONG PERL ĐỀ TÀI: 2NỘI DUNG: I. Giới thiệu sơ lược về Perl II. Sơ lược về Nhập – Xuất III. Hàm 3I. Giới thiệu sơ lược về Perl 1. Tên gọi 2. Lịch sử 3. Đặc điểm & Thế mạnh 4. Biểu tượng 4I.1. Tên gọi:  Perl là tên viết tắt của Practical Extraction and Report Language – ngôn ngữ kết xuất và báo cáo thực dụng. 5I.2.Lịch sử  Perl được Larry Wall xây dựng từ năm 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 đó 1 năm thì cho ra đời phiên bản thứ 3.  Năm 1991, cuốn sách Programming Perl đã đượ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 được viết trong sách. 6I.3.Đặ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. 7I.3. Đặ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). 8I.3. Đặ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. 9I.3. Đặ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. 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 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ử 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 = ; # đọ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 = ; 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 "5xin chao" 15 III. 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. 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 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: sub say_hello { print "Xin chao moi nguoi!\n"; } 18  Các định nghĩa trình con là toàn cục, không có trình con cục bộ.  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 dùng chung với phần còn lại của chương trình (biến toàn cục). VD: sub say_what { print "Xin chao, $what\n"; } $what tham khảo tới giá trị toàn cục cho $what và được dùng chung với phần còn lại của chương trình. III.1. Xác định một hàm tiện ích(tt): 19 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. Gọi một hàm tiện ích: Khi muốn gọi chương trình con thì ta dùng câu lệnh sau: &subname[(danh sách tham số)]; hoặc subname(); 21 III.2. Gọi một hàm tiện ích(tt): VD: say_hello(); #mot bieu thuc don gian $a = 3 + say_hello(); #mot bieu thuc kep for ($x = start_value();$x < end_value(); $x += increment()) { ... } #goi 3 trinh con 22 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 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. 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 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 ra nó cho $b. 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 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 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 duoc mo rong thanh 1,2,3,4,5 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 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, ...

Các file đính kèm theo tài liệu này:

  • pdfnhom7_4501.pdf