Bài thuyết trình Giới thiệu ngôn ngữ & hàm trong Perl giới thiệu sơ lược về Perl, sơ lược về nhập – xuất, hàm. Mời các bạn tham khảo bài thuyết trình để nắm bắt nội dung chi tiết. Với các bạn chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích.
Trang 1ĐỀ TÀI:
Trang 2NỘI DUNG:
I Giới thiệu sơ lược về Perl
II Sơ lược về Nhập – XuấtIII Hàm
Trang 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
Trang 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
Trang 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
Trang 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)
Trang 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
Trang 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
Trang 10I.4 Biểu tượng:
Cuốn sách ProgrammingPerl, xuất bản bởi O'ReillyMedia, với trang bìa làbức ảnh 1 con lạc đà Từ
đó, lạc đà trở thành biểutượng của ngôn ngữ Perl
Trang 11II Nhập xuất:
1 Nhập
2 Xuất
Trang 12II.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>;
Trang 13 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?
Trang 14II.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
Trang 16III.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ư:
Trang 17III.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";
}
Trang 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
Trang 19III.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
Trang 20III.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();
Trang 21III.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 kepfor ($x = start_value();$x < end_value();
$x += increment()){
} #goi 3 trinh con
Trang 22III.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
Trang 23III.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
Trang 24III.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”
Trang 27III.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
Trang 28III.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 @_
Trang 29III.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
Trang 30III.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
Trang 31III.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
Trang 32III.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
Trang 33my (@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 }
Trang 34III.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)
Trang 35III.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,