Perl và các khái niệm cơ bản

139 924 9
Perl và các khái niệm cơ bản

Đ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

Perl và các khái niệm cơ bản

Lời giới thiệuCuốn sách này nói về gì1: Giới thiệuLịch sử của PerlMục đích của PerlNhững điều sẵnHỗ trợCác khái niệm bảnDạo qua PerlBài tập2:Dữ liệu vô hớngDữ liệu vô hớng là gì?SốXâuToán tửBiến vô hớngToán tử trên biến vô hớng<STDIN> nh giá trị vô hớngĐa ra với print()Giá trị undefBài tập3: Dữ liệu mảng danh sáchMảng là gì?Biểu diễn hằng kí hiệuBiếnToán tửVô hớng ngữ cảnh mảng<STDIN> nh một mảngNội suy biến thiên của mảngBài tập4: Cấu trúc điều khiểnKhối câu lệnhCâu lệnh if/unlessCâu lệnh while/untilCâu lệnh forCâu lệnh foreachBài tập5: Mảng kết hợpMảng kết hợp là gì?Biến mảng kết hợp Biểu diễn hằng kí hiệu cho mảng kết hợpToán tử mảng kết hợpBài tập6: Vào/ra sởĐa vào từ STDINĐa vào từ toán tử hình thoiĐa ra STDOUTBài tập7: Biểu thức chính quiKhái niệm về biểu thức chính quiCách dùng đơn giản về biểu thức chính quiMẫuNói thêm về toán tử đối sánhPhép thếCác toán tử split(0 join()Bài tập8: HàmCác hàm hệ thống ngời dùngĐịnh nghĩa hàm ngời dùngGọi hàm ngời dùngCho lại giá trịĐốiBiến cục bộ trong hàmBài tập9: Các cấu trúc điều khiển Toán tử lastToán tử nextToán tử redoKhối nhãnBộ sửa đổi biểu thức&&, || ?: xem nh các cấu trúc điều khiểnBài tập10: Giải quyết tệp kiểm thử tệpTớc hiệu tệp là gì?Mở đóng một tớc hiệu tệpMột chút tiêu khiển: die()Dùng tớc hiệu tệpKiểm tra tệp -xToán tử stat() lstat()Dùng _FilehandleBài tập 11: Định dạngĐịnh dạng là gì?Xác định một định dạngGọi một định dạngNói thêm về FieldholderĐịnh dạng đỉnh trangĐổi giá trị mặc định cho định dạngBài tập12: Thâm nhập danh mụcĐi vòng quanh cây danh mụcGlobbingGiải quyết danh mụcMở đóng bộ giải quyết danh mụcĐọc bộ giải quyết danh mụcBài tập13: Thao tác tệp danh mụcLoại bỏ tệpĐổi tên tệpTạo ra tên thay phiên cho một tệp (liên kết)Tạo ra xoá danh mụcSửa đổi phép dùngSửa đổi quyền dùngSửa đổi thời hạnBài tập14: Quản lí tiến trìnhDùng system() exec()Dùng BackquotesDùng Proceses FilehandlesDùng folkTóm tắt về các phép toán tiến trìnhGửi nhận tín hiệuBài tập15: Biến đổi dữ liệu khácTìm xâu conTrích thay thế xâu conĐịnh dạng dữ liệu bằng sprintf()Sắp xếp cao cấpChuyển tựBài tập16: Thâm nhập sở dữ liệu hệ thống Lấy mật hiệu thông tin nhómĐóng mở gói dữ liệu nhị phânLấy thông tin mạngLấy thông tin khácBài tập17: Thao tác sở dữ liệu ngời dùngCơ sở dữ liệu DBM mảng DBMMở đóng mảng DBMDùng mảng DBMCơ sở dữ liệu thâm nhập ngẫu nhiên chiều dài cố địnhCơ sở dữ liệu chiều dài biến thiên (văn bản)Bài tập18: Chuyển các ngôn ngữ khác sang PerlChuyển Chơng trình awk sang PerlChuyển Chơng trình sed sang PerlBài tậpA: Trả lời bài tậpB: sở về nối mạngMô hình chỗ cắmKhách mẫuBộ phục vụ mẫuC: Những chủ đề cha đề cập tớiBộ gỡ lỗiDòng lệnhCác toán tử khácNhiều, nhiều hàm nữaNhiều, nhiều biến đặt sẵn nữaXâu ở đâyreturn (từ chơng trình con)Toán tử eval (và s///e)Thao tác bảng kí hiệu với *FREDToán tử gotoToán tử requireTh việnPerl bản 5.0 GoodiesChỉ mục 1Giới thiệuLịch sử PerlPerl là cách viết tắt cho Practical Extraction and Report Language Ngôn ngữ báo cáo trích rút thực hành, mặc dầu nó cũng còn đợc gọi là Pathologically Eclectic Rubbish Lister - Bộ làm danh sách chiết trung bậy bạ bệnh hoạn. Chẳng ích gì mà biện minh xem cách gọi nào đúng hơn, vì cả hai đều đợc Larry Wall, ngời sáng tạo kiến trúc s chính, ngời cài đặt bảo trì của Perl chấp nhận. Ông ấy đã tạo ra Perl 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, lệnh awk làm xì hết hơi. Larry, một ngời lập trình lời biếng, quyết định thanh toán vấn đề này bằng một công cụ vạn năng mà anh thể dùng ít nhất cũng ở một nơi khác. Kết quả là bản đầu tiên của Perl.Say khi chơi với bản đầu này của Perl một chút, thêm chất liệu đây đó, Larry đa nó cho cộng đồng độc giả Usenet, thờng vẫn đợc gọi là the Net. Ngời dùng thuộc toán phù du nghèo khó về hệ thống trên toàn thế giới (quãng độ chục nghìn ngời) đa lại cho anh phản hồi, hỏi cách làm thế này thế kia, việc này việc khác, nhiều điểm mà Larry cha bao giờ mờng tợng ra về việc giải quyết cho Perl nhỏ bé của mình cả.Nhng kết quả là Perl trởng thành, trởng thành trởng thành thêm nữa, cũng cùng tỉ lệ nh lõi của UNIX. (với bạn là ngời mới, toàn bộ lõi UNIX đợc dùng chỉ khít vào trong 32K! bây giờ chúng ta may mắn nếu ta thể đợc nó dới một vài mega.) Nó đã trởng thành trong các tính năng. Nó đã trởng thành trong tính khả chuyển. Điều mà thời là một ngôn ngữ tí tẹo bây giờ đã tài liệu sử dụng 80 trang, một cuốn sách của Nutshell 400 trang, một nhóm tin Usenet với 40 nghìn thuê bao, bây giờ là đoạn giới thiệu nhẹ nhàng này.Larry vẫn là ngời bảo trì duy nhất, làm việc trên Perl ngoài giờ khi kết thúc công việc thờng ngày của mình. Perl thì vẫn phát triển.Một cách đại thể thì lúc mà cuốn sách này đạt tới điểm dừng của nó, Larry sẽ đa ra bản Perl mới nhất, bản 5.0, hứa hẹn một số tính năng thờng hay đợc yêu cầu, đợc thiết kế lại từ bên trong trở ra. (Larry bảo tôi rằng không còn mấy dòng lệnh từ lần đa ra trớc, số ấy cứ 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 đều sẽ làm việc với bản 5.0 các bản sau của Perl. Trong thực tế, 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 Trong chơng này: Lịch sử Perl Mục đích của Perl sẵn Hỗ trợ Các khái niệm bản Dạo qua về Perl thay đổi lạ cần cho sự tiến bộ.Mục đích của PerlPerl đợc thiết kế để trợ giúp cho ngời dùng UNIX với những nhiệm vụ thông dụng mà thể rất nặng nề hay quá nhậy cảm với tính khả chuyển đối với trình 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 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, nhiều thời gian hơn để đọc tin trên Usenet đ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 cho phép bạn tạo ra (với tối thiểu sự om sòm nhặng sị) một số giải pháp u thế rất trần lặng hay những công cụ tổng quát. Cũng vậy, bạn thể lôi những công cụ này sang công việc tiếp, vì Perl là khả chuyển cao độ lại sẵn, cho nên bạn sẽ nhiều thời gian hơn để đọc tin Usenet trợt tuyết.Giống nh mọi ngôn ngữ, Perl thể chỉ viết - tức là thể viết ra chơng trình mà không thể nào đọc đợc. Nhng với sự chú ý đúng đắn, bạn thể tránh đợc sự 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, nhng với ngời lập trình đã thạo Perl, nó tựa nh những dòng tổng kiểm tra với một sứ mệnh trong cuộc đời. Nếu bạn tuân theo những hớng dẫn của cuốn sách này thì chơng trình của bạn sẽ dễ đọc dễ bảo trì, chúng lẽ sẽ không thắng trong bất kì cuộc tranh luận Perl khó hiểu nào.Tính sẵn cóNếu bạn nhận đợcPerl: not foundkhi bạn thử gọi Perl từ lớp vỏ thì ngời quản trị hệ thống của bạn cũng chẳng lên cơn sốt. Nhng thậm chí nếu nó không trên hệ thống của bạn, thì bạn vẫn thể lấy đợc nó không mất tiền (theo nghĩa ăn tra không mất tiền).Perl đợc phân phối theo phép công cộng GNU, nghĩa là thế này, bạn thể phân phát chơng trình nhị phân Perl chỉ nếu bạn làm ra chơng trình gốc sẵn cho mọi ngời dùng không phải trả tiền gì cả, 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. đó là bản chất của cho không. Bạn thể lấy chơng trình gốc của Perl với giá của một băng trắng hay vài mêga byte qua đờng dây. không ai thể khoá Perl bán cho bạn chỉ mã nhị phân với ý tởng đặc biệt về cấu hình phần cứng đợc hỗ trợ.Trong thực tế, nó không chỉ là cho không, nhng nó chạy còn gọn hơn trên gần nh mọi thứ mà thể gọi là UNIX hay tựa UNIX trình biên dịch C. Đấy là vì bộ trình này tới với bản viết cấu hình bí quyết đợc gọi là Cấu hình, cái sẽ móc chọc vào các danh mục hệ thống để tìm những thứ nó cần, điều chỉnh việc đa vào các tệp các kí hiệu đợc xác định tơng ứng, chuyển cho bạn việc kiểm chứng phát hiện của nó.Bên cạnh các hệ thống UNIX hay tựa UNIX, ngời đã bị nghiện Perl đem nó sang Amiga, Atari ST, họ Macintosh, VMS, OS/2, thậm chí MS/DOS - lẽ còn nhiều hơn nữa vào lúc bạn đọc cuốn sách này. Vị trí chính xác sự sẵn của những bản Perl này thì biến động, cho nên bạn phải hỏi quanh (trên nhóm tin Usenet chẳng hạn) để đợc thông tin mới nhất. Nếu bạn hoàn toàn không biết gì, thì một bản cũ của Perl đã trên đĩa phần mềm CD-ROM UNIX Power Tools, của Jerry Peek, Tim OReilly Mike Loukides (OReilly & Associates/ Random House Co., 1993).Hỗ trợPerl là con đẻ của Larry Wall, vẫn đang đợc anh ấy nâng niu. Báo cáo lỗi yêu cầu nâng cao nói chung đều đợc sửa chữa trong các lần đa ra sau, nhng anh ấy cũng chẳng nghĩa vụ nào để làm bất kì cái gì với chúng cả. Tuy thế Larry thực sự thích thú nghe từ tất cả chúng ta, cũng làm việc thực sự để thấy Perl đợc dùng trên qui mô thế giới. E-mail trực tiếp cho anh ấy nói chung đều nhận đợc trả lời (cho dù đấy chỉ đơn thuần là máy trả lời email của anh ấy), đôi khi là sự đáp ứng con ngời.ích lợi hơn việc viết th trực tiếp cho Larry là nhóm hỗ trợ Perl trực tuyến toàn thế giới, liên lạc thông qua nhóm tin Usenet comp.lang.perl. Nếu bạn thể gửi email trên Internet, nhng cha vào Usenet, thì bạn thể tham gia nhóm này bằng cách gửi một yêu cầu tới perl-users-request@virgina.edu, yêu cầu sẽ tới một ngời thể nối bạn với cửa khẩu email hai chiều trong nhóm, cho bạn những hứong dẫn về cách làm việc.Khi bạn tham gia một nhóm tin, bạn sẽ thấy đại loại khoảng 30 đến 60 th mỗi ngày (vào lúc bản viết này đợc soạn thảo) trên đủ mọi chủ đề từ câu hỏi của ngời mới bắt đầu cho tới vấn đề chuyển chơng trình phức tạp vấn đề giao diện, thậm chí cả một hay hai chơng trình khá lớn.Nhóm tin gần nh đợc những chuyên gia Perl điều phối. Phần lớn thời gian, câu hỏi của bạn đều sự trả lời trong vòng vài phút khi bài tin bạn tới tủ nối Usenet chính. Bạn hãy thử mức độ hỗ trợ từ nhà sản xuất phần mềm mình a chuộng về việc cho không này! Bản thân Larry cũng đọc về nhóm khi thời gian cho phép, đôi khi đã xen các bài viết thẩm quyền vào để chấm dứt việc cãi nhau hay làm sáng tỏ một vấn đề. Sau rốt, không Usenet, lẽ không thể chỗ để dễ dàng công bố Perl cho cả thế giới.Bên cạnh nhóm tin, bạn cũng nên đọc tạp chí Perl, đi cùng việc phân phối Perl. Một nguồn thẩm quyền khác là cuốn sách Programming Perl của Larry Wall Randal L. Schwatrz (OReilly & Associaté, 1990). Programming Perl đợc xem nh Sách con lừa vì bìa của nó vẽ con vật này (hệt nh cuốn sách này lẽ sẽ đợc biết tới với tên sách lạc đà không bớu). Sách con lừa chứa thông tin tham khảo đầy đủ về Perl dới dạng đóng gọn gàng. Sách con lừa cũng bao gồm một bảng tra tham khảo bật ra tài tình mà chính là nguồn a chuộng của cá nhân tôi về thông tin Perl.Các khái niệm bảnMột bản viết vỏ không gì khác hơn là một dãy các lệnh vỏ nhồi vào trong một tệp văn bản. Tệp này đợc làm cho chạy bằng cách bật một bit thực hiện (qua chmod +x filename) rồi gõ tên của tệp đó vào lời nhắc của vỏ. Bingo, một ch-ơng trình vỏ lớn. Chẳng hạn, một bản viết để chạy chỉ lệnh date theo sau bởi chỉ lệnh who thể đợc tạo ra thực hiện nh thế này:$ echo date > somecript$ echo who > somecript$ cat somescriptdatewho$ chmod _x somescript$ somescript[output of date followed by who]$Tơng tự nh thế, một chơng trình Perl là một bó các câu lệnh định nghĩa Perl đợc ném vào trong một tệp. Rồi bạn bật bit thực hiện 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 không phải là chơng trình vỏ, nên chúng ta cần một bớc phụ.#! /usr/bin/perllàm dòng đầu tiên của tệp này. Nhng 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 thêm việc phải làm. Hãy 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 chế thông thờng 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 hiệu bài (những phần tử của chơng trình, nh print hay +) là tuỳ chọn, trừ phi hai hiệu bài đi với nhau thể bị lầm lẫn thành một hiệu bà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, dòng mới, về đầu dòng hay kéo giấy.) một vài cấu trúc đòi hỏi một loại khoảng trắng nào đó ở chỗ nào đó, nhng chúng sẽ đợc trỏ ra khi ta nói tới chúng. Bạn thể giả thiết rằng loại khối lợng khoảng trắng giữa các hiệu bài là tuỳ ý trong các trờng hợp khác.Mặc dầu gần nh tất cả các chơng trình Perl đều 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ề tệp đợc lấy tổ hợp chung nh mọt trình lớn cần thực hiện. Không khái niệm về trình chính main nh trong C.Chú thích của Perl giống nh chú thích của lớp vỏ (hiện đại). Bất kì cái gì nằm giữa một dấu thăng (#) tới cuối dòng đều là một chú thích. Không khái niệm về chú thích trên nhiều dòng nh C.Không giống hầu hết các lớp vỏ (nhng giống nh awk sed), bộ thông dịch Perl phân tích 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, cũng nghĩa là khoảng trắng chú thích biến mất 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, nó cung cấp động phụ để loại bỏ C nh một ngôn ngữ tiện ích hệ thống đơn thuần dựa trên nền tảng là C đợc biên dịch. Việc biên dịch này không mất thời gian - sẽ là phi hiệu quả nếu một chơng trình Perl cực lớn lại chỉ thực hiện một nhiệm vụ nhỏ bé chóng vánh (trong số nhiều nhiệm vụ tiềm năng) rồi ra, vì thời gian chạy cho chơng trình sẽ nhỏ xíu nếu so với thời gian dịch.Cho nên Perl giống nh một bộ biên dịch thông dịch. Nó là biên dịch vì ch-ơng trình đợc đọc 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 mã đích ngồi đâu đó trút đầy không gian đĩa. Theo một cách nào đó, nó là tốt nhất cho cả hai loại này. Phải thú thực, việc ẩn đi mã đích đã dịch giữa những lời gọi thì hay, đó là trong danh sách mong ớc cho Perl tơng lai của Larry.Dạo qua PerlChú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ủ đề đều đợc thảo luận chi tiết hơn rất nhiều về sau trong cuốn sách này. Nhng cuộc đi dạo nhỏ này sẽ cho bạn kinh nghiệm nhanh chóng về ngôn ngữ, bạn thể quyết định liệu bạn thực sự muốn kết thúc cuốn sách này hay đọc thêm các tin Usenet hay chạy đi chơi trợt tuyết.Chơng trình Xin chào mọi ngờiTa hãy nhìn vào một chơng trình nhỏ mà thực tế làm điều gì đó. Đây là ch-ơng trình Xin chào mọi ngời:#!/usr/bin/perlprint 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 - hãy nhớ rằng lời chú thích là bất kì cái gì nằm sau dấu thăng cho tới cuối dòng, giống nh hầu hết các lớp vỏ hiện đại hay awk.Dòng thứ hai là toàn bộ phần thực hiện đợc của chơng trình này. Tại đây chúng ta thấy câu lệnh print. Từ khoá print bắt đầu chơng trình, một đối, một xâu văn bản kiểu C. Bên trong xâu này, tổ hợp kí tự \n biểu thị cho kí tự dòng mới; hệt nh trong C. Câu lệnh print đợc kết thúc bởi dấu chấm phẩy (;). Giống nh C, tất cả các câu lệnh đơn giản đều kết thúc bằng chấm phẩy* .Khi bạn gọi chơng trình này, phần lõi sẽ gọi bộ thông dịch Perl, phân tích câu toàn bộ chơng trình (hai dòng, kể cả dòng chú thích đầu tiên) rồi thực hiện dạng đã dịch. Thao tác đầu tiên duy nhất là thực hiện toán tử print, điều này gửi * Dấu chấm phẩy thể bỏ đi khi câu lệnh này là câu lệnh cuối của một khối hay tệp hay eval. đối của nó ra lối ra. Sau khi chơng trình đã hoàn tất, thì tiến trình Perl ra, cho lại một mã ra thành công cho lớp vỏ.Hỏi câu hỏi nhớ kết quảTa hãy thêm một chút phức tạp hơn. Từ Xin chào mọi ngời là một sự đụng chạm lạnh nhạt cứng rắn. Ta hãy làm cho chơng trình gọi bạn theo tên bạn. Để làm việc này, ta cần một chỗ giữ tên, một cách hỏi tên, một cách nhận câu trả lời.Một loại đặt chỗ giữ giá trị (tựa nh một tên) là biến vô hớng. Với chơng trình này, ta sẽ dùng biến vô hớng $name để giữ tên bạn. Chúng ta sẽ đi chi tiết hơn trong Chơng 2, Dữ liệu vô hớng, về những gì mà biến này thể giữ, những gì bạn thể làm với chúng. Hiện tại, giả sử rằng bạn thể giữ một số hay xâu (dãy các kí tự) trong biến vô hớng.Chơng trình này cần hỏi về tên. Để làm điều đó, ta cần một cách nhắc một cách nhận cái vào. Chơng trình trớc đã chỉ ra cho ta cách nhắc - dùng toán tử print. cách để nhận một dòng từ thiết bị cuối là với toán tử <STDIN>, mà (nh ta sẽ dùng nó ở đây) lấy một dòng cái vào. Ta gán cái vào này cho biến $name. Điều này cho ta chơng trình:print Tên bạn là gì? : ;$name = <STDIN> ;Giá trị của $name tại điểm này một dấu dòng mới kết thúc (Randal trong Randal\n). Để vứt bỏ điều đó, chúng ta dùng toán tử chop(), toán tử lấy một biến vô hớng làm đối duy nhất bỏ đi kí tự cuối từ giá trị xâu của biến:chop($name);Bây giờ tất cả những gì ta cần làm là nói Xin chào, tiếp đó là giá trị của biến $name, mà ta thể thực hiện theo kiểu vỏ bằng cách nhúng biến này vào bên trong xâu ngoặc kép:print Xin chào, $name!\n;Giống nh lớp vỏ, nếu ta muốn một dấu đô la thay vì tham khảo biến vô hớng, thì ta thể đặt trớc dấu đô la với một dấu sổ chéo ngợc.Gắn tất cả lại, ta đợc:#!/usr/bin/perlprint Tên bạn là gì? ;$name = <STDIN> ;chop($name);print Xin chào, $name!\n;Bổ sung chọn lựaBây giờ ta muốn một lời chào đặc biệt cho Randal, nhng muốn lời chào thông thờng cho mọi ngời khác. Để làm điều này, ta cần so sánh tên đã đợc đa vào với xâu Randal, nếu hai xâu là một, thì làm điều gì đó đặc biệt. Ta hãy bổ sung [...]... (lần đa ra gần đây nhất khi tôi viết điều này). Mọi thứ ở đây đều sẽ làm việc với bản 5.0 các bản sau của Perl. Trong thực tế, 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 Trong chơng này: ã Lịch sử Perl ã Mục đích của Perl ã sẵn ã Hỗ trợ ã Các khái niệm bản ã D¹o qua vỊ Perl \v tab chiều đứng \a chuông \e lối thoát \007 bất kì giá trị ASCII hệ tám (ở... cho ta thể so sánh nó tra cứu nó trong bảng thì sẽ phá huỷ mất tên ta vừa đa vào. Cho nên, trớc khi chém vào tên, cần phải cất giữ nó vào trong @original_name. (Giống nh các kí hiệu C, biến Perl bao gồm các chữ, chữ số dấu gạch thấp thể chiều dài gần nh không giới hạn.) Vậy ta có thể làm tham khảo tới $original_name về sau. Perl nhiều cách để giám sát chặt cắt xâu. bạn sẽ... nhau. Một 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, vân vâ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. Tập đầy đủ các toán tử so sánh (cho cả số xâu) đợc nêu trong Bảng 2-2. Bảng 2-2. Các toán tử so sánh số xâu Phép so sánh Số Xâu Bằng == eq Không bằng != ne Bé h¬n < lt trợ. Liệt kê các từ... thức &&, || ?: xem nh các cấu trúc điều khiển Bài tập 10: Giải quyết tệp kiểm thử tệp Tớc hiệu tệp là gì? Mở đóng một tớc hiệu tệp Một chút tiêu khiĨn: die() Dïng tíc hiƯu tƯp KiĨm tra tƯp -x To¸n tư stat() vµ lstat() Dïng _Filehandle Bµi tËp Lời giới thiệu Cuốn sách này nói về gì 1: Giới thiệu Lịch sử của Perl Mục đích của Perl Những điều sẵn Hỗ trợ Các khái niệm bản Dạo qua Perl Bài... lµ UNIX hay tựa UNIX trình biên dịch C. Đấy là vì bộ trình này tới với bản viết cấu hình bí quyết đợc gọi là Cấu hình, cái sẽ móc chọc vào các danh mục hệ thống để tìm những thứ nó cần, điều chỉnh việc đa vào các tệp các kí hiệu đợc xác định tơng ứng, chuyển cho bạn việc kiểm chứng phát hiện của nó. Bên cạnh các hệ thống UNIX hay tựa UNIX, ngời ®· bÞ nghiƯn Perl ®em nã nữa cũng... bớu). Sách con lừa chứa thông tin tham khảo đầy đủ về Perl dới dạng đóng gọn gàng. Sách con lõa cịng bao gåm mét b¶ng tra tham kh¶o bật ra tài tình mà chính là nguồn a chuộng của cá nhân tôi về thông tin Perl. Các khái niệm bản Một bản viết vỏ không gì khác hơn là một dÃy các lệnh vỏ nhồi vào trong một tệp văn bản. Tệp này đợc làm cho chạy bằng cách bËt mét bit thùc hiÖn (qua ... giản Xin chào, mọi ngời, nhng nó vẫn còn rất nhỏ bé làm việc đợc, nó quả làm đợc tí chút với cái ngắn xíu vậy. đây chính là cách thức của Perl. Perl đa ra tính năng về các biĨu thøc chÝnh qui cã trong mäi tr×nh tiƯn Ých UNIX chuẩn (và thậm chí trong một số không chuẩn). Không chỉ thế, nhng cách thức Perl giải quyết cho việc đối sánh xâu là cách nhanh nhất trên hành tin này, cho nên bạn không... phát chơng trình nhị phân Perl chỉ nếu bạn làm ra chơng trình gốc sẵn cho mọi ngời dùng không phải trả tiền gì cả, 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. đó là bản chất của cho không. Bạn thể lấy chơng trình gốc của Perl với giá của một băng trắng hay vài mêga byte qua đờng dây. không ai thể khoá Perl bán cho bạn chỉ mà nhị... 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 6), và tạo ra một giá trị mới (11, kết quả). Các toán tử biểu thức của Perl nsoi 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 thể là tổ hợp... gồm các chữ số dấu ngắt trong phạm vi ASCII 32 tới ASCII 126. Tuy nhiên, khả năng để bất kì kí tự nào từ 0 tới 255 trong một xâu nghĩa là bạn thể tạo ra, nhòm qua, 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 thể víu lõi UNIX bằng việc đọc nó vào trong xâu Perl, tiến hành thay đổi, . 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 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. tin Perl. Các khái niệm cơ bảnMột bản viết vỏ không gì khác hơn là một dãy các lệnh vỏ nhồi vào trong một tệp văn bản. Tệp này đợc làm cho chạy bằng cách bật

Ngày đăng: 31/08/2012, 09:39

Từ khóa liên quan

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

Tài liệu liên quan