Học lập trình ngôn ngữ Perl

354 355 0
Học lập trình ngôn ngữ Perl

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Học Perl Randal L. Schwartz Người dịch: Ngô Trung Việt Hà Nội 5/1999 Learning Perl Randal L. Schwartz O’Reilly & Associates, Inc., 1993 i Mục lục 1 Giới thiệu 1 Lịch sử Perl 1 Mục đích của Perl 3 Tính sẵn có 3 Hỗ trợ 5 Các khái niệm cơ bản 6 Dạo qua Perl 9 Chương trình “Xin chào mọi người” 10 Hỏi câu hỏi và nhớ kết quả 11 Bổ sung chọn lựa 12 Đoán từ bí mật 13 Nhiều từ bí mật 14 Cho mỗi người một từ bí mật khác nhau 16 Giải quyết dạng thức cái vào thay đổi 19 Làm cho công bằng với mọi người 21 Làm cho nó mô đun hơn một chút 24 Chuyển danh sách từ bí mật vào tệp riêng biệt 28 Đảm bảo một lượng an toàn giản dị 33 Cảnh báo ai đó khi mọi việc đi sai 34 Nhiều tệp từ bí mật trong danh mục hiện tại 36 Nhưng chúng ta biết họ là ai! 38 Liệt kê các từ bí mật 40 ii Làm cho danh sách từ cũ đó đáng lưu ý hơn 44 Duy trì cơ sở dữ liệu đoán đúng cuối cùng 45 Chương trình cuối cùng 48 Bài tập 51 2 Dữ liệu vô hướng 53 Dữ liệu vô hướng là gì? 53 Số 54 Tất cả các số đã có cùng dạng thức bên trong 54 Hằng kí hiệu động 54 Hằng kí hiệu nguyên 55 Xâu 56 Xâu dấu nháy đơn 56 Xâu dấu nháy kép 57 Toán tử 59 Toán tử số 59 Toán tử xâu 61 Thứ tự ưu tiên và luật kết hợp của toán tử 63 Chuyển đổi giữa số và xâu 66 Các toán tử trên biến vô hướng 68 Toán tử gán hai ngôi 69 Tự tăng và tự giảm 71 Toán tử chop() 72 Xen lẫn vô hướng vào trong xâu 73 <STDIN> xem như một vô hướng 75 Đưa ra bằng print() 76 Giá trị undef 77 Bài tập 78 3 Dữ liệu mảng và danh sách 79 iii Mảng là gì? 79 Biểu diễn hằng kí hiệu 80 Biến 81 Toán tử 82 Phép gán 82 Truy nhập phần tử 85 Các toán tử push() và pop() 88 Các toán tử shift() và unshift() 89 Toán tử reverse() 89 Toán tử sort() 90 Toán tử chop() 90 Hoàn cảnh vô hướng và mảng 91 <STDIN> như một mảng 92 Xen lẫn biến mảng 92 Bài tập 94 4 Cấu trúc điều khiển 97 Khối câu lệnh 97 Câu lệnh if/unless 98 Câu lệnh while/until 101 Câu lệnh for 103 Câu lệnh foreach 104 Bài tập 106 5 Mảng kết hợp 109 Mảng kết hợp là gì? 109 Biến mảng kết hợp 110 Biểu diễn hằng kí hiệu cho mảng kết hợp 111 Các toán tử mảng kết hợp 112 iv Toán tử keys() 112 Toán tử values() 113 Toán tử each() 114 Toán tử delete 114 Bài tập 115 6 Vào / ra cơ bản 117 Vào từ STDIN 117 Đưa vào từ toán tử hình thoi 119 Đưa ra STDOUT 120 Dùng print cho đưa ra thông thường 120 Dùng printf cho cái ra có dạng thức 121 Bài tập 122 7 Biểu thức chính qui 123 Khái niệm về biểu thức chính qui 123 Cách dùng đơn giản về biểu thức chính qui 124 Khuôn mẫu 126 Khuôn mẫu một kí tự 127 Khuôn mẫu nhóm 129 Dấu ngoặc tròn như bộ nhớ 132 Thay phiên 134 Khuôn mẫu neo 134 Thứ tự ưu tiên 136 Thêm về toán tử đối sánh 137 Chọn một mục tiêu khác (toán tử =~) 137 Bỏ qua chữ hoa thường 138 Dùng một định biên khác 139 v Dùng xen lẫn biến 140 Biến chỉ đọc đặc biệt 141 Thay thế 142 Các toán tử split() và join() 144 Toán tử split() 144 Toán tử join() 146 Bài tập 146 8 Hàm 149 Hàm hệ thống và hàm người dùng 149 Xác định một hàm người dùng 149 Gọi một hàm người dùng 151 Giá trị cho lại 152 Đối 153 Biến cục bộ trong hàm 156 Bài tập 159 9 Các cấu trúc điều khiển khác 161 Toán tử last 161 Toán tử next 163 Toán tử redo 164 Khối có nhãn 165 Bộ thay đổi biểu thức 167 &&, || và ?: xem như các cấu trúc điều khiển 169 Bài tập 171 10 Tước hiệu tệp và kiểm thử tệp 173 Tước hiệu tệp là gì? 173 vi Mở và đóng một tước hiệu tệp 174 Một chút tiêu khiển: die() 175 Dùng tước hiệu tệp 177 Kiểm tra tệp -x 178 Các toán tử stat() và lstat() 183 Dùng _Filehandle 184 Bài tập 185 11 Dạng thức 187 Dạng thức là gì? 187 Định nghĩa một dạng thức 188 Gọi một dạng thức 191 Nói thêm về nơi giữ tệp 193 Trường văn bản 194 Trường số 194 Trường nhiều dòng 196 Trường được lấp đầy 196 Dạng thức đầu trang 200 Thay đổi mặc định cho dạng thức 201 Dùng select() để thay đổi tước hiệu tệp 201 Thay đổi tên dạng thức 203 Đổi tên dạng thức đầu trang 204 Đổi chiều dài trang 205 Thay đổi vị trí trên trang 206 Bài tập 207 12 Truy nhập danh mục 209 Chuyển vòng quanh cây danh mục 209 Globbing 210 vii Tước hiệu danh mục 213 Mở và đóng tước hiệu danh mục 214 Đọc một tước hiệu danh mục 215 Bài tập 216 13 Thao tác tệp và danh mục 217 Loại bỏ tệp 217 Đổi tên tệp 219 Tạo ra tên thay phiên cho một tệp (móc nối) 220 Về móc nối cứng và mềm 220 Tạo ra các móc nối cứng và mềm bằng Perl 222 Tạo ra và xoá danh mục 224 Thay đổi phép sử dụng 225 Thay đổi quyền sở hữu 226 Thay đổi nhãn thời gian 227 Bài tập 229 14 Quản lí tiến trình 230 Dùng system() và exec() 230 Dùng dấu nháy đơn ngược 235 Dùng các tiến trình như tước hiệu tệp 236 Dùng fork 238 Tóm tắt về các phép toán tiến trình 241 Gửi và nhận tín hiệu 243 Bài tập 246 15 Biến đổi dữ liệu khác 249 Tìm một xâu con 249 Trích và thay thế một xâu con 251 viii Dạng thức dữ liệu bằng sprintf() 254 Sắp xếp nâng cao 254 Chuyển tự 260 Bài tập 263 16 Truy nhập cơ sở dữ liệu hệ thống 265 Lấy mật hiệu và thông tin nhóm 265 Gói và mở dữ liệu nhị phân 270 Lấy thông tin mạng 273 Lấy các thông tin khác 275 Bài tập 276 17 Thao tác cơ sở dữ liệu người dùng 277 Cơ sở dữ liệu DBM và mảng DBM 277 Mở và đóng mảng DBM 278 Dùng mảng DBM 280 Cơ sở dữ liệu truy nhập ngẫu nhiên chiều dài cố định 281 Cơ sở dữ liệu (văn bản) chiều dài thay đổi 284 Bài tập 287 18 Chuyển đổi các ngôn ngữ khác sang Perl 289 Chuyển chương trình awk sang Perl 289 Chuyển đổi chương trình sed sang Perl 291 Chuyển đổi chương trình Shell sang Perl 292 Bài tập 293 Phụ lục A Trả lời các bài tập 295 [...]... với trình vỏ, và cũng quá kì lạ hay ngắn ngủi hay phức tạp để lập trình trong C hay một ngôn ngữ công cụ UNIX nào khác Một khi bạn trở nên quen thuộc với Perl, bạn có thể thấy mình mất ít thời gian để lấy được trích dẫn trình vỏ (hay khai báo C) đúng, và nhiều thời gian hơn để đọc tin trên Usenet và đi trượt tuyết trên đồi; vì Perl là một công cụ lớn tựa như chiếc đòn bẩy Các cấu trúc chặt chẽ của Perl. .. một chương trình Perl và không phải là chương trình vỏ, nên chúng ta cần một bước phụ #! /usr/bin /perl làm dòng đầu tiên của tệp này Nhưng nếu Perl của bạn bị kẹt vào một nơi không chuẩn, hay hệ điều hành tựa UNIX của bạn không hiểu dòng #!, thì bạn có thêm việc phải làm Hỏi người cài đặt Perl về điều này Các thí dụ trong sách này giả sử rằng bạn dùng cơ chế thông thường này Perl là một ngôn ngữ phi định... không mất tiền”) Perl được phân phối theo giấy phép công khai GNU, nghĩa là thế này, “bạn có thể phân phát chương trình nhị phân Perl chỉ nếu bạn làm cho chương trình gốc có sẵn cho mọi người dùng không phải trả tiền gì cả, và nếu bạn sửa đổi Perl, bạn phải phân phát chương trình gốc của bạn cho nơi sửa đổi của bạn nữa.” Và đó là bản chất của cho không Bạn có thể lấy chương trình gốc của Perl với giá của... tiếp, vì Perl là khả chuyển cao độ và lại có sẵn, cho nên bạn sẽ có nhiều thời gian hơn để đọc tin Usenet và trượt tuyết Giống như mọi ngôn ngữ, Perl có thể “chỉ viết” - tức là có thể viết ra chương trình mà không thể nào đọc được Nhưng với chú ý đúng đắn, bạn có thể tránh được kết tội thông thường này Quả thế, đôi khi Perl trông như nổi tiếng với những cái không quen thuộc, nhưng với người lập trình. .. chương trình Perl đã có thể được viết tất cả trên một dòng, một cách điển hình chương trình Perl cũng hay được viết tụt lề như chương trình C, với những phần câu lệnh lồng nhau được viết tụt vào hơn so với phần bao quanh Bạn sẽ thấy đầy những thí dụ chỉ ra phong cách viết tụt lề điển hình trong toàn bộ cuốn sách này Cũng giống như bản viết về vỏ, chương trình Perl bao gồm tất cả các câu lệnh perl về... Xâu ở đây 338 Trở về (từ trình con) 339 ix Toán tử eval (và s///e) 339 Thao tác bảng kí hiệu bằng *FRED 340 Toán tử goto 340 Toán tử require 341 Thư viện 341 Tin vui về Perl 5.0 341 x 1 Trong chương này:  Lịch sử Perl  Mục đích của Perl  Có sẵn  Hỗ trợ  Các khái niệm cơ bản  Dạo qua về Perl Giới thiệu Lịch sử Perl Perl là cách viết tắt cho “Practical... hay đọc thêm các tin Usenet hay chạy đi chơi trượt tuyết 9 Chương trình “Xin chào mọi người” Ta hãy nhìn vào một chương trình nhỏ mà thực tế có làm điều gì đó Đây là chương trình “Xin chào mọi người”: #!/usr/bin /perl print “Xin chào mọi người\n”; Dòng đầu tiên là câu thần chú nói rằng đây là chương trình Perl Nó cũng là lời chú thích cho Perl nhớ rằng lời chú thích là bất kì cái gì nằm sau dấu thăng cho... bạn không bao giờ nhận được lỗi cú pháp từ chương trình một khi chương trình đã bắt đầu chạy, và cũng có nghĩa là khoảng trắng và chú thích biến mất và sẽ không làm chậm chương trình Thực ra, giai đoạn biên dịch này bảo đảm việc thực hiện nhanh chóng của các thao tác Perl một khi nó được bắt đầu, và nó cung cấp động cơ phụ để loại bỏ C như một ngôn ngữ tiện ích hệ 8 thống đơn thuần dựa trên nền tảng... cho Perl tương lai Dạo qua Perl Chúng ta bắt đầu cuộc hành trình của mình qua Perl bằng việc đi dạo một chút Việc đi dạo này sẽ giới thiệu một số các tính năng khác nhau bằng cách bổ sung vào một ứng dụng nhỏ Giải thích ở đây là cực kì ngắn gọn mỗi vùng chủ đề đã được thảo luận chi tiết hơn rất nhiều về sau trong cuốn sách này Nhưng cuộc đi dạo nhỏ này sẽ cho bạn kinh nghiệm nhanh chóng về ngôn ngữ, ... ngày càng ít đi mỗi ngày.) Tuy nhiên, cuốn sách này đã được thử với Perl bản 4.0 (lần đưa ra gần đây nhất khi tôi viết điều này) Mọi thứ ở đây đó sẽ làm việc với bản 5.0 và các bản sau của Perl Thực ra, chương trình Perl 1.0 vẫn làm việc tốt với những bản gần đây, ngoại trừ một vài thay đổi là cần cho sự tiến bộ 2 Mục đích của Perl Perl được thiết kế để trợ giúp cho người dùng UNIX với những nhiệm vụ . 287 18 Chuyển đổi các ngôn ngữ khác sang Perl 289 Chuyển chương trình awk sang Perl 289 Chuyển đổi chương trình sed sang Perl 291 Chuyển đổi chương trình Shell sang Perl 292 Bài tập 293 Phụ. hay phức tạp để lập trình trong C hay một ngôn ngữ công cụ UNIX nào khác. Một khi bạn trở nên quen thuộc với Perl, bạn có thể thấy mình mất ít thời gian để lấy được trích dẫn trình vỏ (hay. chương trình Perl bao gồm tất cả các câu lệnh perl về tệp được lấy tổ hợp chung như mọt trình lớn cần thực hiện. Không có khái niệm về trình “chính” main như trong C. Chú thích của Perl giống

Ngày đăng: 04/02/2015, 11:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan