Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
1,12 MB
Nội dung
PERL FOR VIETNAMESE COMMUNITY Perl – The 1 st Step HướngdẫnlậptrìnhPerlcơbản [JaPh] 2/5/2009 The book is written by bvKim and [JaPh] with a quick guide and introduction on how to start programming computer language with Perl in an easy way. [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 2 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 3 MỤC LỤC Chuyên mục Trang A. Giới thiệu về Perl và tác giả 1. Perl là gì? 2. Ứng dụng Perl 3. Cần gì để lậptrình Perl? 4. LậptrìnhPerl khó hay dễ? 5. Đôi điều về tác giả 6. Quy ước và kí hiệu trong sách B. Kiểu dữ liệu I. Kiểu số 1. Số nguyên 2. Số thực 3. Toán tử kiểu số II. Kiểu chuỗi 1. Lưu trữ 2. Kí tự đặc biệt 3. Toán tử kiểu chuỗi C. Biến 1. Scalar 2. List 3. Hash D. Cấu trúc chương trìnhPerl E. Toán tử và độ ưu tiên 1. Tự tăng – giảm 2. Quan hệ 3. So sánh ngang bằng 4. Toán tử vói bit (bitwise) 5. Điều kiện F. Cấu trúc điều kiện 1. Rẽ nhánh IF 2. Rẽ nhánh UNLESS [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 4 G. Nhập xuất 1. Chuẩn Input 2. Đối số chương trình 3. Toán tử kim cương <> 4. Các nguồn khác H. Cấu trúc vòng lặp 1. Cấu trúc WHILE 2. Cấu trúc UNTIL 3. Cấu trúc FOR 4. Cấu trúc FOREACH 5. Nhãn và điều khiển I. Tương tác với file J. Hàm [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 5 Trang này để trống. [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 6 A. Giới thiệu qua về ngôn ngữ lậptrìnhPerl 1. Perl là gì? Perl là một ngôn ngữ lậptrình nhỏ gọn được tạo nên bởi Larry Wall trong quá trình viết một báo cáo. Từ một tools để ứng dụng làm báo cáo, ông đã phát triển nó lên một tầm cao mới và từ đó ngôn ngứ lậptrìnhPerl ra đời. Nhiều người tự hỏi Perlcó nghĩa là gì? Ban đầu Perl là những chữ cái đầu của “Practical Extraction and Report Language” (ngôn ngữ thi hành xử lý và báo cáo thông tin); nhưng về sau Perl còn được gọi là “Pathologically Eclectic Rubbish Lister” (cái này xin phép miễn dịch vì không dịch nổi). Nhà sang tạo ra Perl, Larry Wall đều chấp nhận 2 ý kiến này vì nó đều thể hiện phong cách mà ngôn ngữ Perl sở hữu. 2. Ứng dụng Perl? Từ những thập nên 90, Perl là tiền thân của thế hệ web dưới dạng tin tức báo cáo nổi. Về sau trở thành ngôn ngữ dựng kịch bảncó thể truyền tải thông tin qua mạng (Internet), hay còn được biết với CGI (Common Graphics Interface). Perl khi được tạo ra được sử dụng với các ứng dụng phân tích dữ liệu và báo cáo rất nhiều và hiện nay vẫn dang được cộng đồng Perl thế giới hỗ trợ phát triển và ứng dụng khả năng này của Perl trong nhiều lĩnh vực, ví dụ như phân tích và thông kê dữ liệu (data mining), sinh học phân tích (bioinformetics)… Perl được ứng dụng đầu tiên trên hệ thống Unix, sau này áp dụng vào hệ thống Linux. Perl là ngôn ngữ được tạo nên từ ngôn ngữ lậptrình C. Tuy nhiên, vì tính thuận tiện và gọn nhẹ nên Perl và C lại còn có thể tương tác lẫn nhau trong quá trính trao đổi và tích hợp code. Vì thế, Perl còn được phát triển mạnh trong lĩnh vực ứng dụng vào hệ thống Linux/Unix, chạy nhanh, nhỏ gọn và code rất đơn giản. Ngôn ngữ lậptrìnhPerl còn được ứng dụng rất nhiều vào các lĩnh vực khác và các bạn sẽ có thể tìm hiểu về Perl rõ hơn qua Internet (Google.com). 3. Cần gì để lậptrình Perl? Nếu bạn sử dụng Linux hoặc hệ thống Unix/Linux thì theo mặc định perl luôn được cài đặt tích hợp với hệ điều hành. Nếu không bạncó thể cập nhật perl bằng cách thêm package perl trong các ứng dụng quản lý phần mềm của Linux/Unix hoặc download perl từ trang chủ và cài đặt theo hướng dẫn. Nếu bạn sử dụng Windows, bạncó thể download Perl từ nhà phân phối Perl ActiveState (http://activestate.com) nhưng có hạn chế rất lớn vì bạn chỉ có thể tải về và sử dụng các gói thư viện từ ActiveState mà thôi. Do đó sẽ rất bất tiện nếu như bạn muốn cài đặt một gói thư viện Perl từ CPAN hay từ nơi khác vào hệ thống. Điểm lợi của ActivePerl là nhà phân phối cung cấp sẵn tiện ích để quản lý các gói thư viện sử dụng một cách tiện nghi, có thể cài đặt, chỉnh sửa hay gỡ bỏ thông qua tiện ích PPM (Perl Package Manager của ActiveState. [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 7 Ngoài bản phân phối thương mại ActivePerl, còn có StrawberryPerl là một gói mã nguồn mở và miễn phí cung cấp các tiện ích đầy đủ cho các bạn muốn lậptrìnhPerl trên Windows với các gói thư viện phổ thông hay được sử dụng nhất hiện nay. Vì được phát triển bởi cộng đồng nên StrawberryPerl rất tiện lợi trong việc tải và cài đặt các gói thư viện Perl từ CPAN thông qua CPAN Shell hay bạncó thể tự cài đặt riêng một cách thuận lợi bằng cách sử dụng các tiện ích cung cấp sẵn từ gói StrawberryPerl. Điểm bất lợi duy nhất mà mình thấy ở StrawberryPerl là tại thời điểm này, chưa có tiện ích hỗ trợ gỡ bỏ các gói thư viện Perl; vì thế bạnbạn xóa bằng tay. Tuy nhiên, việc này cũng không thành vấn đề vì để gỡ bỏ một gói thư viện Perl, đơn thuần bạn chỉ cần xóa thư viện đó trong thư mục lib của Perl và tài liệu tham khảo trong thư mục doc là được. Bạncó thể tải và cài đặt StrawberryPerl tại trang chủ http://www.strawberryperl.com/ * Ghi chú: sau khi cài đặt perl, các perl script thường có extension là .pl (với web thì là .cgi). Để chạy các perl script, các bạn sử dụng command shell để dịch chương trình: $ perl script.pl 4. Có khó để lậptrình perl? Cũng như mọi môn khoa học, bạn cần phải tự rèn luyện kĩ năng và tư duy trong lập trình. Đặc biệt, phải luôn dành thời gian thường xuyên để tập luyện hay ôn lại kĩ năng lập trình. Không có việc gì khó, cho dù bạn là người đã quen với lậptrình hay là người hoàn toàn mới với ngôn ngữ máy tính, chỉ cần bạn thực sự dồn công sức vào là mọi việc tất sẽ được và thành công. 5. Về tác giả cuốn sách này Vốn là những người yêu thích lậptrình Perl, bvKim và [JaPh] với mong muốn mang về đất nước Việt nam, nền công nghệ thông tin với ngôn ngữ lậptrình còn được gọi là được biết không nhiều ở Việt Nam. Vì mục đích phục vụ cộng đồng và mở rộng nền công nghệ thông tin Việt nam, chúng tôi hi vọng cuốn sách nhỏ này sẽ đóng góp một phần nào đó và đem đến cho người đọc niềm hứng thú với một ngôn ngữ lậptrình khá mới mẻ này mặc dù với thế giới thì không có gì là mới cho lắm. Cuốn sách hiện còn trong quá trình được hoàn thiện nên sẽ có rất nhiều sai sót nên rất mong các bạn đóng góp để giúp chúng tôi hoàn thiện cuốn sách này một cách cẩn thận và đẩy đủ. Bạn đọc có thể liên hệ với tác giả qua email: pete.houston.17187@gmail.com 6. Quy ước trong sách Màu đỏ nâu (Dark Red): là câu lệnh thực thi chương trình Perl. Màu đỏ (Red): là định nghĩa hay cách sử dụng một hàm hay một cấu trúc lệnh. Màu xanh lá cây (Dark Green): là chú ý hay điều quan trọng cần ghi nhớ. [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 8 Cặp đánh dấu –SCRIPT- và -/SCRIPT- cho biết ở giữa là một đoạn code Perl. [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 9 B. Kiểu dữ liệu (Data Type) I. Dữ liệu kiểu số: (Number) Có 2 kiểu số được sử dụng trong Perl: số nguyên (integer) và số thực (floating-point). 1. Kiểu số nguyên Những số được biểu diễn như sau mang tính chất số nguyên trong Perl: 0 1982 -9999 23487682304 034234 Tuy nhiên, trong Perlcó một kiểu viết số nguyên hơi đặc biệt một chút; đó là với số lớn, có nhiều chữ số, bạncó thể sử dụng dấu gạch chân (underscore) _ để nối các chữ số với nhau và Perl vẫn có thể hiểu đó là kiểu số nguyên. Ví dụ số dưới đây: 1_333 -23_1 2_034_22_234_96 Những số trên đều là số nguyên hợp lệ theo nguyên tắc. Đây là điểm khác so với nhiều ngôn ngữ lậptrình khác. (*) Trong Perl, có 4 hệ đếm cơ số cơ bản: hệ nhị phân (binary-2),hệ bát phân (octal-8), hệ thập phân (decimal-10) và hệ thập lục (hexadecimal-16). Quy tắc để biểu diễn số nguyên trong perl dưới các hệ đếm này như sau: + nhị phân: thêm 0b ở trước con số. Ví dụ: 0b101, 0b1111, 0B00110101… + bát phân: thêm số 0 ở trước con số. Ví dụ: 037, 01111, 09876…. + thập phân: những kiểu viết bình thường khác 3 hệ đếm kia. Ví dụ: 1234, 590283…. + thập lục phân: thêm 0x ở đầu. Ví dụ: 0xFF, 0x34AABCE0…. Ghi chú: việc nhận dạng chuẩn các hệ đếm này còn phụ thuộc vào cách bạn xử lý kiểu dữ liệu trong chương trình. Vì thế bạn chưa cần quan tâm lắm về vấn đề đó ở đây. 2. Kiểu số thực (floating-point) Là những con số có dấu chấm dộng trong cách thể hiện. Ví dụ những con số dưới đây là số thực được dùng trong Perl: 0.00 -3.0085 7.25E3 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 10 -1.8e19 -2009.12e-21 Ghi chú: kí tự e với ý nghĩa cơ số mũ của 10. 3. Các toán tử với dữ liệu kiểu số Perl cung cấp 6 toán tử cơbản để tính toán với dữ liệu kiểu số. a. Toán tử cộng (addition operation) 3 + 2 1.01 + 7.2 -2.3e-38 + 1.04 b. Toán tử trừ (subtraction operation) 1.01 - 43 1.02 – 4e11 c. Toán tử nhân (multiply operation) 45 * 2.1 99.1 * 0.1e22 d. Toán tử chia (division operation) 5.3 / 2 1 / 9e-17 e. Toán tử thương dư (modulus operation) 5 % 8 6.3 % 1.02e3 f. Toán tử nhân bội (exponential operation) 2 ** 3 (=8) 1 ** 100 (=1) II. Dữ liệu kiểu chuỗi (Strings) 1. Lưu trữ Trong perl, kiểu chuỗi hợp lệ gồm các kí tự chuẩn trong bảng mã ASCII 32 (kí tự, kí tự, kí tự đặc biệt, kí tự điều khiển, kí số…) Để lưu trữ dữ liệu kiểu chuỗi Perl giữ giá trị của chúng bằng 2 cách. + Dữ liệu lưu trong cặp dấu phẩy đơn „‟ + Dữ liệu lưu trong cặp dấu phẩy kép “” [...]... quả cho trước Page 25 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Biểu thức chung cho cặp toán tử ?: [assignment=] (conditional statement) ? (if true) : (if false) Toán tử này rất hữu ích trong việc giảm nhẹ quá trình rẽ nhánh Page 26 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 27 [Hướng dẫnlậptrình Perl cho người Việt Nam]... thức cơbản để có thể áp dụng vào thực tế Từ bây giờ, sẽ đi vào các kiến thức chính của perl như khối lệnh điều kiện, vòng lặp, cấu trúc dữ liệu,… Page 21 [Hướng dẫnlậptrình Perl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 22 [Hướng dẫnlậptrình Perl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 E Các toán tử và độ ưu tiên toán tử Độ ưu tiên toán tử và kết hợp trong Perl. .. list các values của hash Page 18 [Hướng dẫnlậptrình Perl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 19 [Hướng dẫnlậptrình Perl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 D Cấu trúc một chương trìnhPerl Kiến thức biết như trên đã nhiều rồi, bây giờ phải đi vào code thử một tí cho nó sảng khoái đầu óc chân tay Như muôn ngàn các ngôn ngữ lậptrình khác chúng ta bắt đầu bằng... “1982” x 3 sẽ thành “198219821982” 2009 x 2 sẽ thành “20092009” chứ không phải là 4018 nhé :D Page 12 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 13 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 C Biến lưu trữ (variable) Trong perl, có 3 kiểu biến số để lưu trữ dữ liệu Đó là: scalar, list và hash 1 Scalar: Scalar là biến chỉ... [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Về cơbản thì giống nhau, chỉ có một điểm khác biệt ở đây là đôi khi trong chuỗi viết, tiếng anh cũng có kiểu viết có dấu phẩy Ví dụ như: don‟t, let‟s, there‟s… Vì thế giả sử có một câu tiếng anh thế này: Let‟s program in perl because it‟s so easy Nếu lưu trong cặp dấu ngoặc đơn: sẽ được: „Let‟s program in perl because... 34 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 4 Các nguồn khác Với STDIN là stream chuẩn nhập thông tin vào, trong perl còn có STDOUT là stream chuẩn xuất kết quả ra màn hình và STDERR trong trường hợp thông báo lỗi Về cơbản mặc định các chế độ xuất ra màn hình là STDOUT nên khi bạn sử dụng các hàm in ra màn hình như print và printf Ví dụ: -SCRIPT- #!/usr/bin /perl. .. auto-decrement) Là 2 toán tử được kế thừa từ C, ++, Hai toán tử này có 2 cách sử dụng và giá trị của nó phụ thuộc cách sử dụng của lậptrình viên Ví dụ: -SCRIPT#! /usr/bin /perl –w use strict; my $i, $j; $i = $j = 100; # Sử dụng tiền tố $a = 1 + ++$i; # $a = 102 Page 23 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 printf $a "\n"; # Sử dụng hậu tố $b = 1 + $j++; # $b = 101 printf... đường dẫn và vị trí của perl để CGI script hoạt động chính xác; nếu không sẽ sinh ra lỗi thường thấy ở CGI script (500: Internal Server Error) Nếu không lậptrình CGI thì bạn không cần quan trọng về chỉ thị ở đây /usr/sbin /perl: đây là đường dẫn của perl trong máy của mình, sử dụng trên môi trường Linux; máy của các bạn thiết lậpcó thể khác (có thể là Windows) -w : đối số vào trình dịch cho biết dịch... $number = ; Page 32 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 $number **= 2; # toán tử lũy thừa viết rút gọn print "Giá trị bình phương là: ", $number,"\n"; -/SCRIPT- 2 Lấy đối số của chương trình (command arguments) a Sử dụng list @ARGV Danh sách @ARGV được định nghĩa sẵn trong Perl để sử dụng lấy danh sách các đối số vào chương trình qua shell hay command... /usr/bin /perl -w # @file sum_02.pl use strict; # lấy đối số thứ nhất my $a = shift; # láy đối số thứ hai my $b = shift; Page 33 [Hướng dẫnlậptrìnhPerl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 # print "Tổng: $a + $b = " ($a + $b) "\n"; -/SCRIPT- 3 Sử dụng toán tử (diamond operator) Đây là một loại toán tử đặc biệt đùng để lấy input Nếu chương trìnhcó cung cấp đối số vào chương trình . computer language with Perl in an easy way. [Hướng dẫn lập trình Perl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 2 [Hướng dẫn lập trình Perl cho người Việt Nam]. J. Hàm [Hướng dẫn lập trình Perl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 5 Trang này để trống. [Hướng dẫn lập trình Perl cho người Việt Nam]. [Hướng dẫn lập trình Perl cho người Việt Nam] – Tác giả: [JaPh] February 5, 2009 Page 13 [Hướng dẫn lập trình Perl cho người Việt Nam] – Tác