Phân tích Cấu trúc chương trình Perl, các kiểu dữ liệu và các thao tác trên dữ liệu

72 562 0
Phân tích Cấu trúc chương trình Perl, các kiểu dữ liệu và các thao tác trên dữ liệu

Đ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

I. PHẦN MỞ ĐẦU: 1. Giới thiệu: PERL là cách viết tắt cho “Practical Extraction and Report Language” (Ngôn ngữ kết xuất và báo cáo thực dụng), mặc dù còn được gọi là “Pathologically Eclectic Rubbish Lister". Tên gọi: Ban đầu, ngôn ngữ này có tên là "Pearl" (ngọc trai), được đặt tên theo "Parable of the Pearl" trong sách phúc âm. Larry đã bỏ nhiều công sức tìm kiếm tên cho ngôn ngữ mới. Ông đã thử xem xét (và bỏ qua) tất cả các từ 3,4 ký tự trong tự điển. Cuối cùng, ông đã đặt tên Pearl. Nhưng trước ngày phiên bản chính thức đầu tiên của Perl ra đời, Larry phát hiện ra đã có một ngôn ngữ cũng có tên là PEARL, nên ông quyết định đổi tên ngôn ngữ mình thành Perl Biểu tượng: Programming Perl, xuất bản bởi O''Reilly Media, đã đưa ra nơi trang bìa bức ảnh 1 con lạc đà. Từ đó, lạc đà trở thành biểu tượng của ngôn ngữ Perl, cũng như quyển sách đó còn được biết đến dưới cái tên The Camel Book. 2. Lịch sử: Larry Wall đã tạo ra Perl từ năm 1987 khi cố gắng sản xuất ra một số báo cáo từ một cấp bậc các tệp kiểu như thư người dùng mạng Usenet về hệ thống báo lỗi, và lệnh awk..và đưa ra bản đầu tiên của Perl – Phiên bản 1.0 trên comp.sources.misc vào ngày 18 tháng 12 năm 1987. Sau đó Larry đưa nó cho các độc giả Usenet, thường vẫn được gọi là “the Net”. Kết quả là Perl phát triển dần và cũng cùng tỉ lệ như kernel của UNIX. Nó đã phát triển các tính năng và tính khả chuyển. Phiên bản 2.0 của Perl được công bố năm 1988, có tính năng tốt hơn cho biểu thức chính quy, phiên bản 3.0, công bố năm 1989, bổ sung them sự hỗ trợ các dữ liệu dạng nhị phân. Và hiện nay phiên bản 4.0, ra đời năm 1991 đang được sử dụng rỗng rãi nhất, cùng với sự ra đời của cuốn sách Programming Perl trở thành 1 cuốn cẩm nang tra cứu ngôn ngữ Perl. II. PHÂN TÍCH: 1. Cấu trúc chương trình Perl và các kiểu dữ liệu: 1.1 Cấu trúc chương trình Perl: Một chương trình perl chạy trên Linux thường có cấu trúc sau: #!/usr/bin/perl-wT (Không bắt buộc) { Phần khai báo các câu lệnh } Với : #!/usr/bin/perl đường dẫn đến chương trình thông dịch Perl trên Linux. wT tham số tuỳ chọn, điều này báo cho trình thông dịch perl cảnh báo những vấn đề có thể phát sinh với mã kịch bản và trả về lỗi nếu chúng ta sử dụng các dữ liệu phía ngoài. Tương tự, một chương trình Perl là một bó các câu lệnh và định nghĩa Perl được đưa vào trong một tệp. Rồi bạn bật bit thực hiện và gõ tên của tệp này tại lời nhắc của vỏ. Tuy nhiên, tệp này phải chỉ ra rằng đây là một chương trình Perl và không phải là chương trình shell, nên chúng ta cần một bước phụ: đặt #!/usr/bin/perl làm dòng đầu tiên của tệp này. Perl là một ngôn ngữ phi định dạng kiểu như C - khoảng trắng giữa các phần tử của chương trình là tuỳ chọn, trừ phi hai phần tử của chương trình dính liền với nhau có thể bị lầm lẫn thành một cái khác, trong trường hợp đó thì khoảng trắng thuộc loại nào đó là bắt buộc (Khoảng trắng bao gồm dấu cách, dấu tab, xuống dòng, về đầu dòng hay sang trang mới). Có một vài cấu trúc đòi hỏi một loại khoảng trắng nào đó ở chỗ nào đó, nhưng đừng lo, tài liệu sẽ chỉ rõ cho bạn biết là các khoảng trắng phải được đặt như thế nào với số lượng bao nhiêu. Có thể giả thiết rằng loại và số lượng khoảng trắng giữa các phần tử trong chương trình là tuỳ ý trong các trường hợp khác. Mặc dù gần như tất cả các chương trình Perl đều có thể được viết tất cả trên một dòng, nhưng một chương trình Perl điển hình được viết xuống dòng và canh lề như chương trình C. Cũng giống như một kịch bản shell, 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ề hàm chính main như trong C. Chú thích của Perl giống như chú thích của kịch bản shell: bất kì cái gì nằm giữa một dấu # tới cuối dòng đều là một chú thích. Perl không có chú thích trên nhiều dòng như C. Không giống hầu hết các shell (nhưng giống như awk và sed), bộ thông dịch Perl phân tích và biên dịch hoàn toàn chương trình trước khi thực hiện nó. Điều này có nghĩa là 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 sẽ được lược bỏ mất và sẽ không làm chậm chương trình. Trong thực tế, 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ệ thống nhất đơn thuần dựa trên nền tảng là C được coi là trình biên dịch. Việc biên dịch này khá tiêu tốn thời gian. Và sẽ là phi hiệu quả nếu một chương trình Perl lớn lại chỉ thực hiện một nhiệm vụ nhỏ bé (trong số nhiều nhiệm vụ tiềm năng) và rồi thoát, vì thời gian chạy cho chương trình sẽ "nhỏ xíu" nếu so với thời gian biên dịch. Cho nên Perl giống như một bộ biên dịch và thông dịch. Nó là biên dịch vì chương trình được đọc và phân tích hoàn toàn trước khi câu lệnh đầu tiên được thực hiện. Nó là bộ thông dịch vì không có mã đích chiếm không gian đĩa. Hiểu theo một cách nào đó, nó là tốt nhất cho cả hai loại này. 1.2 Các kiểu dữ liệu và các thao tác trên dữ liệu 1.2.1 Dữ liệu vô hướng: Dữ liệu vô hướng là gì? Vô hướng là loại dữ liệu đơn giản nhất mà Perl thao tác. Một vô hướng thì hoặc là một số (giống như 4 hay 3.25e20) hay một xâu các kí tự (giống Xin chào hay Gettysburg Address). Một giá trị vô hướng có thể được tác động bởi các toán tử (giống như phép cộng hay ghép), và kết quả trả về nói chung là một kết quả vô hướng. Một giá trị vô hướng có thể được cất giữ vào trong một biến vô hướng. Các biến vô hướng có th

PHÂN CÔNG NHIỆM VỤ: Nhóm 3 TH ĐINH THẾ DUY 3 25/03/09 ĐINH HUY TƯỞNG 3 1 NGUYỄN THỊ XUÂN 3 VŨ QUỐC HUY 3 2 NGUYỄN THỊ HÀ 3 ĐINH VĂN HÙNG 3 3 NGUYỄN THỊ GẤM 3 TRỊNH THỊ HUYỀN TRANG 3 4 VŨ VĂN PHONG 3 VŨ NGỌC TRƯỜNG 3 5 NGUYỄN VĂN TIẾN 3 PHẠM THỊ HƯƠNG LAN 3 6 TẠ NGỌC NGUYÊN 3 PHẠM THANH TÙNG 3 1: Cấu trúc chương trình Perl, Các kiểu dữ liệu 2: Các thao tác trên dữ liệu 3: Các lệnh vào/ra dữ liệu 4: Các lệnh vào/ra tệp 5: Các lệnh điều khiển chương trình 6: Khai báo và sử dụng chương trình con MỤC LỤC I. PHẦN MỞ ĐẦU: 1. Giới thiệu 2. Lịch sử phát triển II. PHÂN TÍCH: 1. Cấu trúc chương trình Perl, các kiểu dữ liệu và các thao tác trên dữ liệu 2. Các lệnh vào/ra dữ liệu 3. Các lệnh vào/ra tệp 4. Các lệnh điều khiển chương trình 5. Khai báo và sử dụng chương trình con 6. Lien ket co su du lieu III. KẾT LUẬN: 1. Ý nghĩa 2. Tương lai phát triển I. PHẦN MỞ ĐẦU: 1. Giới thiệu: PERL là cách viết tắt cho “Practical Extraction and Report Language” (Ngôn ngữ kết xuất và báo cáo thực dụng), mặc dù còn được gọi là “Pathologically Eclectic Rubbish Lister". Tên gọi: Ban đầu, ngôn ngữ này có tên là "Pearl" (ngọc trai), được đặt tên theo "Parable of the Pearl" trong sách phúc âm. Larry đã bỏ nhiều công sức tìm kiếm tên cho ngôn ngữ mới. Ông đã thử xem xét (và bỏ qua) tất cả các từ 3,4 ký tự trong tự điển. Cuối cùng, ông đã đặt tên Pearl. Nhưng trước ngày phiên bản chính thức đầu tiên của Perl ra đời, Larry phát hiện ra đã có một ngôn ngữ cũng có tên là PEARL, nên ông quyết định đổi tên ngôn ngữ mình thành Perl Biểu tượng: Programming Perl, xuất bản bởi O'Reilly Media, đã đưa ra nơi trang bìa bức ảnh 1 con lạc đà. Từ đó, lạc đà trở thành biểu tượng của ngôn ngữ Perl, cũng như quyển sách đó còn được biết đến dưới cái tên The Camel Book. 2. Lịch sử: Larry Wall đã tạo ra Perl từ năm 1987 khi cố gắng sản xuất ra một số báo cáo từ một cấp bậc các tệp kiểu như thư người dùng mạng Usenet về hệ thống báo lỗi, và lệnh awk và đưa ra bản đầu tiên của Perl – Phiên bản 1.0 trên comp.sources.misc vào ngày 18 tháng 12 năm 1987. Sau đó Larry đưa nó cho các độc giả Usenet, thường vẫn được gọi là “the Net”. Kết quả là Perl phát triển dần và cũng cùng tỉ lệ như kernel của UNIX. Nó đã phát triển các tính năng và tính khả chuyển. Phiên bản 2.0 của Perl được công bố năm 1988, có tính năng tốt hơn cho biểu thức chính quy, phiên bản 3.0, công bố năm 1989, bổ sung them sự hỗ trợ các dữ liệu dạng nhị phân. Và hiện nay phiên bản 4.0, ra đời năm 1991 đang được sử dụng rỗng rãi nhất, cùng với sự ra đời của cuốn sách Programming Perl trở thành 1 cuốn cẩm nang tra cứu ngôn ngữ Perl. II. PHÂN TÍCH: 1. Cấu trúc chương trình Perl và các kiểu dữ liệu: 1.1 Cấu trúc chương trình Perl: Một chương trình perl chạy trên Linux thường có cấu trúc sau: #!/usr/bin/perl-wT (Không bắt buộc) { Phần khai báo các câu lệnh } Với : #!/usr/bin/perl đường dẫn đến chương trình thông dịch Perl trên Linux. wT tham số tuỳ chọn, điều này báo cho trình thông dịch perl cảnh báo những vấn đề có thể phát sinh với mã kịch bản và trả về lỗi nếu chúng ta sử dụng các dữ liệu phía ngoài. Tương tự, một chương trình Perl là một bó các câu lệnh và định nghĩa Perl được đưa vào trong một tệp. Rồi bạn bật bit thực hiện và gõ tên của tệp này tại lời nhắc của vỏ. Tuy nhiên, tệp này phải chỉ ra rằng đây là một chương trình Perl và không phải là chương trình shell, nên chúng ta cần một bước phụ: đặt #!/usr/bin/perl làm dòng đầu tiên của tệp này. Perl là một ngôn ngữ phi định dạng kiểu như C - khoảng trắng giữa các phần tử của chương trình là tuỳ chọn, trừ phi hai phần tử của chương trình dính liền với nhau có thể bị lầm lẫn thành một cái khác, trong trường hợp đó thì khoảng trắng thuộc loại nào đó là bắt buộc (Khoảng trắng bao gồm dấu cách, dấu tab, xuống dòng, về đầu dòng hay sang trang mới). Có một vài cấu trúc đòi hỏi một loại khoảng trắng nào đó ở chỗ nào đó, nhưng đừng lo, tài liệu sẽ chỉ rõ cho bạn biết là các khoảng trắng phải được đặt như thế nào với số lượng bao nhiêu. Có thể giả thiết rằng loại và số lượng khoảng trắng giữa các phần tử trong chương trình là tuỳ ý trong các trường hợp khác. Mặc dù gần như tất cả các chương trình Perl đều có thể được viết tất cả trên một dòng, nhưng một chương trình Perl điển hình được viết xuống dòng và canh lề như chương trình C. Cũng giống như một kịch bản shell, 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ề hàm chính main như trong C. Chú thích của Perl giống như chú thích của kịch bản shell: bất kì cái gì nằm giữa một dấu # tới cuối dòng đều là một chú thích. Perl không có chú thích trên nhiều dòng như C. Không giống hầu hết các shell (nhưng giống như awk và sed), bộ thông dịch Perl phân tích và biên dịch hoàn toàn chương trình trước khi thực hiện nó. Điều này có nghĩa là 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 sẽ được lược bỏ mất và sẽ không làm chậm chương trình. Trong thực tế, 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ệ thống nhất đơn thuần dựa trên nền tảng là C được coi là trình biên dịch. Việc biên dịch này khá tiêu tốn thời gian. Và sẽ là phi hiệu quả nếu một chương trình Perl lớn lại chỉ thực hiện một nhiệm vụ nhỏ bé (trong số nhiều nhiệm vụ tiềm năng) và rồi thoát, vì thời gian chạy cho chương trình sẽ "nhỏ xíu" nếu so với thời gian biên dịch. Cho nên Perl giống như một bộ biên dịch và thông dịch. Nó là biên dịch vì chương trình được đọc và phân tích hoàn toàn trước khi câu lệnh đầu tiên được thực hiện. Nó là bộ thông dịch vì không có mã đích chiếm không gian đĩa. Hiểu theo một cách nào đó, nó là tốt nhất cho cả hai loại này. 1.2 Các kiểu dữ liệu và các thao tác trên dữ liệu 1.2.1 Dữ liệu vô hướng: Dữ liệu vô hướng là gì? Vô hướng là loại dữ liệu đơn giản nhất mà Perl thao tác. Một vô hướng thì hoặc là một số (giống như 4 hay 3.25e20) hay một xâu các kí tự (giống Xin chào hay Gettysburg Address). Một giá trị vô hướng có thể được tác động bởi các toán tử (giống như phép cộng hay ghép), và kết quả trả về nói chung là một kết quả vô hướng. Một giá trị vô hướng có thể được cất giữ vào trong một biến vô hướng. Các biến vô hướng có thể được đọc từ tệp và thiết bị, và có thể được ghi thiết bị xuất. Số: Mặc dầu kiểu vô vô hướng thì hoặc là một số hay một xâu, nhưng cũng vẫn có ích khi ta nhìn vào các số và xâu tách biệt nhau trong một chốc lát. Ta sẽ xét số trước rồi đến xâu Tất cả các số đều có cùng định dạng bên trong Như bạn sẽ thấy trong vài đoạn tiếp đây, bạn có thể xác định cả số nguyên (toàn bộ số, giống như 14 hay 342) và số dấu phẩy động (số thực với dấu chấm thập phân, như 3.14 hay 1.35*1025). Nhưng bên trong, Perl chỉ tính với các giá trị dấu phẩy động độ chính xác gấp đôi. Điều này có nghĩa là không có giá trị nguyên bên trong Perl - một hằng nguyên trong chương trình được xử lí như giá trị dấu phẩy động tương đương. Bạn có lẽ không để ý đến việc chuyển đổi (hay quan tâm nhiều), nhưng bạn nên dừng tìm kiếm phép toán nguyên (xem như ngược với các phép toán dấu phẩy động), vì không có phép tính nào như vậy đâu. Hằng kí hiệu động Hằng kí hiệu là một cách để biểu diễn một giá trị trong văn bản chương trình Perl - bạn cũng có thể gọi điều này là một hằng trong chương trình mình, nhưng tôi sẽ dùng thuật ngữ hằng kí hiệu. Hằng kí hiệu là cách thức biểu diễn dữ liệu trong mã chương trình gốc của chương trình bạn như cái vào cho trình biên dịch Perl (dữ liệu được đọc từ hay ghi lên các tệp đều được xử lí tương tự, nhưng không đồng nhất). Perl chấp nhận tập hợp đầy đủ các hằng kí hiệu dấu phẩy động có sẵn cho người lập trình C. Số có hay không có dấu chấm thập phân đều được phép (kể cả tiền tố cộng hay trừ tuỳ chọn), cũng như phần chỉ số mũ phụ thêm (kí pháp luỹ thừa) với cách viết E. Chẳng hạn: 1.25 # một và 1/4 7.25e45 # 7,25 x 1045 (một số dương lớn) -6.5e24 # -6,5 x 1024 (một số âm lớn) -12e-24 # -12 x 10-24 (một số âm rất nhỏ) -1.2E-23 # tương tự như số ở trên: -1,2 x 10-23 Hằng kí hiệu nguyên Các hằng kí hiện nguyên cũng được ghi trực tiếp, ví dụ: 12 15 -2004 3485 Chú ý: Perl hỗ trợ cho hằng kí hiệu hệ cơ số tám và hệ mười sáu (hệt như kiểu C). Số hệ tám bắt đầu bằng số 0 đứng đầu, còn số hệ mười sáu thì bắt đầu bằng 0x hay 0X. Các chữ số hệ mười sáu từ A đến F (trong cả hai kiểu chữ hoa thường) đều biểu thị cho các giá trị số qui ước từ 10 đến 15. Chẳng hạn: 0377 # 377 hệ tám = 255 trong hệ thập phân -0xff # âm FF hệ mười = -255 trong hệ thập phân Xâu là một dãy các kí tự (như Xin chào). Mỗi kí tự đều là một giá trị 8-bit trong toàn bộ tập 256 kí tự (không có gì đặc biệt về kí tự NULL như trong C). Xâu: Xâu ngắn nhất có thể được là xâu rỗng-không có kí tự nào. Xâu dài nhất thì chiếm trọn bộ nhớ máy tính (mặc dầu bạn sẽ chẳng thể nào làm gì nhiều với nó cả). Điều này phù hợp với nguyên lí "không có giới" mà Perl cung cấp cho bạn. Các xâu điển hình là các dẫy in được gồm các chữ, số và dấu ngắt trong phạm vi ASCII 32 tới ASCII 126. Tuy nhiên, khả năng để có bất kì kí tự nào từ 0 tới 255 trong một xâu có nghĩa là bạn có thể tạo ra, 'nhòm' qua, và thao tác dữ liệu nhị phân thô như các xâu - một cái gì đó mà phần lớn các trình tiện ích UNIX khác sẽ gặp khó khăn lớn. (chẳng hạn, bạn có thể 'vá lỗi' UNIX bằng việc đọc nó vào trong xâu Perl, tiến hành thay đổi, và ghi lại kết quả). Giống như số, xâu có thể biểu diễn hằng kí hiệu (cách thức bạn biểu diễn xâu trong chương trình Perl). Các xâu hằng kí hiệu có theo hai hướng: xâu nháy đơn và xâu nháy kép. Xâu dấu nháy đơn Xâu dấu nháy đơn là một dẫy các kí tự được bao trong dấu nháy đơn ('). Dấu nháy đơn không phải là một phần của bản thân xâu - chúng chỉ có đó để Perl xác định chỗ bắt đầu và kết thúc của xâu. Bất kì kí tự nào nằm giữa các dấu nháy (kể cả dấu xuống dòng, nếu xâu vẫn còn tiếp tục sang dòng sau) đều là hợp pháp bên trong xâu. Hai ngoại lệ: để lấy được một dấu nháy đơn trong một xâu có nháy đơn, bạn hãy đặt trước nó một dấu sổ chéo ngược. Và để lấy được dấu sổ chéo ngược trong một xâu có nháy đơn, bạn hãy đặt trước dấu sổ chéo ngược nột dấu sổ chéo ngược nữa. Ví dụ: 'hello' #năm kí tự: h, e, l, l, o 'dont\'t' #năm kí tự: d, o, n, nháy đơn, t '' #xâu rỗng (không có kí tự) 'silly\\me' #silly, theo sau là một sổ chéo ngược, sau là me "hello\n' #hello theo sau là sổ chéo ngược và n 'hello there' #hello, xuống dòng, there (toàn bộ 11 kí tự) Chú ý rằng \n bên trong môt xâu có nháy đơn thì không được hiểu là dòng mới, nhưng nếu là hai kí tự sổ chéo ngược thì khác (chỉ khi sổ chéo ngược đi theo sau bởi một sổ chéo ngược khác hay một dấu nháy đơn thì mới mang nghĩa đặc biệt). Xâu dấu nháy kép Xâu dấu nháy kép hành động hệt như xâu trong C. Một lần nữa, nó lại là dãy các kí tự, mặc dầu lần này được bao bởi dấu ngoặc kép. Nhưng bây giờ dấu sổ chéo ngược lấy toàn bộ sức mạnh của nó để xác định các kí tự điều khiển nào đó, hay thậm chí bất kì kí tự nào qua các biểu diễn hệ tám hay hệ mười sáu. Đây là một số xâu dấu nháy kép: "hello world\n" # hello world, và dấu xuống dòng "new \177" # new, dấu cách và kí tự xoá (177 hệ tám) "coke\tsprite" # coke, dấu tab, và sprite Lối thoát sổ chéo: Dấu sổ chéo có thể đứng trước nhiều kí tự khác nhau để hàm ý những điều khác nhau (về điển hình nó được gọi là lối thoát sổ chéo). Danh sách đầy đủ của các lối thoát xâu nháy kép được cho trong Bảng 2-1. Bảng 2-1 Dấu sổ chéo ngược trong xâu nháy kép Kết cấu Ý nghĩa \n xuống dòng mới \r về đầu dòng \t ký tự tab \f báo hết trang \b xoá lui 1 ký tự \a phát 1 tiếng "bíp" \e escape \007 ký tự ASCII ở hệ tám (007=bíp) \0x7f ký tự ASCII ở hệ mười sáu (7f=delete) \cC ký tự điều khiển (ở đây là Ctrl-C) \\ dấu sổ chéo ngược \" dấu nháy kép \l ký tự tiếp theo sẽ chuyển thành chữ thường \L tất cả các ký tự tiếp theo cho tới \E sẽ thành chữ thường \u ký tự tiếp theo sẽ chuyển thành chữ hoa \U tất cả các ký tự tiếp theo cho tới \E sẽ thành chữ hoa \E kết thúc \L hay \U Một tính năng khác của xâu nháy kép là ở chỗ chúng cho phép chen lẫn các biến, nghĩa là một số tên biến nào đó bên trong xâu được thay thế bởi giá trị hiện tại của chúng khi xâu được dùng. Các toán tử: Một toán tử tạo ra một giá trị mới (kết quả) từ một hay nhiều giá trị khác (các toán hạng). Chẳng hạn, + là một toán tử vì nó nhận hai số (toán hạng, như 5 và 6), và tạo ra một giá trị mới (11, kết quả). Các toán tử và biểu thức của Perl nói chung đều là siêu tập của các toán tử đã có trong hầu hết các ngôn ngữ lập trình tựa ALGOL/Pascal, như C. Một toán tử bao giờ cũng trông đợi các toán hạng số hay xâu (hay có thể là tổ hợp của cả hai). Nếu bạn cung cấp một toán hạng xâu ở chỗ đang cần tới [...]... tập các toán tử cho xâu khác là toán tử so sánh xâu Các toán tử này đều tựa FORTRAN, như lt thay cho bé hơn Các toán tử so sánh các giá trị ASCII của các kí tự của xâu theo cách thông thường Các toán tử so sánh số và xâu Phép so sánh Số Xâu Bằng == eq Không bằng != ne Bé hơn < lt Lớn hơn > gt Bé hơn hay bằng = ge Bạn có thể tự hỏi tại sao lại có các toán tử phân tách cho số và. .. quan hệ gì theo bất kì cách nào với biến vô hướng $jerry Perl duy trì không gian tên tách biệt cho các kiểu đối tượng khác nhau Giá trị của một biến mảng mà chưa được gán là (), danh sách rỗng Một biểu thức có thể tham khảo tới các biến mảng như một tổng thể, hoặc nó có thể xem xét và thay đổi từng phần tử của mảng đó Các hàm và phép toán trên mảng Các toán tử mảng hành động trên các mảng như một tổng... sẵn Biểu diễn hằng kí hiệu Một hằng kí hiệu mảng (cách thức bạn biểu diễn giá trị của một mảng bên trong chương trình) là một danh sách các giá trị tách nhau bằng dấu phẩy và được bao trong dấu ngoặc tròn Những giá trị này tạo nên các phần tử của danh sách Chẳng hạn: (1,2,3) # mảng gồm ba giá trị 1, 2 và 3 ("jerry", 4.5) # hai giá trị, "jerry" và 4.5 Các phần tử của mảng không nhất thiết là hằng - chúng... đổi dữ liệu khác, bạn sẽ học cách sắp xếp theo số, hoặc theo thứ tự giảm dần, hay theo kí tự thứ ba của từng xâu, hay bất kì phương pháp nào khác mà bạn chọn Toán tử chop() và chomp() Toán tử chop() và chomp() làm việc trên biến mảng cũng như biến vô hướng Mỗi phần tử của mảng đều có kí tự cuối bị bỏ đi Điều này có thể là thuận tiện khi bạn đọc một danh sách các dòng như các phần tử mảng tách riêng, và. .. phải là một tên biến mảng - đẩy vào và lấy ra sẽ không có ý nghĩa với danh sách hằng kí hiệu Các toán tử shift() và unshift() Các toán tử push() và pop() làm việc ở bên "phải" của danh sách (phần với chỉ số cao nhất) Tương tự thế, các toán tử unshift() và shift() thực hiện những hành động tương ứng về bên "trái" của một danh sách (phần với chỉ số thấp nhất) Sau đây là vài thí dụ: unshift(@jerry,$a);... một tổng thể, thêm vào và bỏ bớt các giá trị bằng việc thực hiện gán mảng Nhiều chương trình có ích đã được xây dựng dùng mảng mà thậm chí chẳng truy cập vào phần tử mảng nào Tuy nhiên, Perl cung cấp toán tử chỉ số truyền thống để tham khảo tới một phần tử mảng theo chỉ số Với toán tử chỉ số mảng, các phần tử mảng đều được đánh số bằng việc dùng số nguyên tuần tự, bắt đầu từ không và tăng lên một cho... này, bất kì toán tử đã cho nào đều có số ưu tiên lớn hơn các toán tử được liệt kê trên nó, và có số ưu tiên thấp hơn các toán tử được liệt kê dưới nó Các toán tử tại cùng mức ưu tiên được giải quyết theo luật kết hợp Giống như với số ưu tiên, luật kết hợp giải quyết trật tự của các phép toán khi hai toán tử có cùng mức ưu tiên cùng tác động trên ba toán hạng: 2 ** 3 ** 4 # 2 ** (3 ** 4), hay 2 ** 81,... cho nên các dấu ngoặc được áp dụng từ bên phải So sánh với nó, các toán tử * và / có luật kết hợp trái, cho tập các dấu ngoặc bên trái Chuyển đổi giữa số và xâu: Nếu một giá trị xâu được dùng như một toán hạng cho một toán tử số (chẳng hạn, +), thì Perl sẽ tự động chuyển xâu thành giá trị số tương đương, dường như nó đã được đưa vào như một giá trị dấu phẩy động Những chất liệu phi số đằng đuôi và khoảng... Mảng băm cũng tựa như mảng (kiểu danh sách), trong đó nó là một tập các dữ liệu vô hướng, với các phần tử riêng được chọn ra bằng một giá trị chỉ số nào đó Không giống mảng danh sách, giá trị chỉ số của mảng băm không phải là số nguyên không âm nhỏ, mà thay vào đó là vô hướng tuỳ ý Những vô hướng này (còn gọi là khoá) được dùng về sau để tìm kiếm các giá trị từ mảng này Các phần tử của mảng băm không... băm và truy cập vào nó bằng cách tham khảo tới các phần tử của nó Mỗi phần tử của mảng đều là một vô hướng tách biệt, được truy cập tới bởi một chỉ mục vô hướng, gọi là khoá Các phần tử của mảng băm %jerry vậy được tham khảo đến bằng $jerry{$key} với $key là bất kì biểu thức vô hướng nào Ta lại chú ý rằng việc truy cập vào một phần tử của mảng ta dùng ký hiệu $ chứ không phải lả % để truy cập vào toàn

Ngày đăng: 29/04/2015, 00:09

Từ khóa liên quan

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

Tài liệu liên quan