Đề 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, .
35 trang |
Chia sẻ: builinh123 | Lượt xem: 2115 | Lượt tải: 0
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:
- nhom7_4501.pdf