Perl

Perl (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) được Larry Wall xây dựng từ năm 1987, với mục đích chính là tạo ra một ngôn ngữ lập trình 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.

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).

Cú pháp lệnh của Perl khá giống với C, từ các ký hiệu đến tên các hàm, do đó, nhiều người (đã có kinh nghiệm với C) thấy Perl dễ học. Perl khá linh hoạt và cho phép người sử dụng giải quyết với cùng một vấn đề được đặt ra theo nhiều cách khác nhau.

Lịch sử 
Wall bắt đầu thiết kế Perl vào năm 1987 lúc đang làm lập trình viên cho Unisys và cho ra đời phiên bản 1.0 trên comp.sources.misc vào ngày 18 tháng 12 năm 1987. Ngôn ngữ được mở rộng một cách nhanh chóng vài năm sau đó. Phiên bản 2 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, công bố năm 1989, với hỗ trợ cho các dữ liệu dạng nhị phân.

Cho đến năm 1991, trang man là tài liệu duy nhất của Perl. Năm 1991, cuốn sách Programming Perl đã được xuất bản và trở thành cuốn cẩm nang tra cứu của ngôn ngữ Perl. Cùng lúc đó, phiên bản 4 ra đời, đánh dấu sự thay đổi quan trọng của ngôn ngữ, và là phiên bản đầu tiên được viết trong sách.

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.

Ngày nay, Perl trở thành tên chính thức của một trong những ngôn ngữ thông dịch mạnh mẽ được nhiều người sử dụng trên thế giới.

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 một 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.

Khái quát 
Ban đầu, Perl được tạo ra cho mục đích xử lý chuỗi. Nhưng dần dần, tính năng của ngôn ngữ được mở rộng ra cho nhiều mục đích khác nhau bao gồm: quản trị hệ thống, thiết kế web, lập trình mạng, phát triển ứng dụng GUI,...

Các tính năng

Ứng dụng

Cấu trúc ngôn ngữ

Kiểu dữ liệu 
Perl có ba kiểu dữ liệu được xây dựng sẵn là kiểu vô hướng (scalar), kiểu mảng của các phần tử vô hướng và kiểu mảng kết hợp của các phần tử vô hướng, thường được gọi là "bảng băm" (hash).

Một thực thể dữ liệu vô hướng là một chuỗi chiều dài bất kỳ (chiều dài bị giới hạn bởi giới hạn bộ nhớ), hoặc một con số, hay một tham khảo trỏ đến một phần tử dữ liệu khác.

Một thực thể dữ liệu mảng thông thường là một danh sách có thứ tự chứa các phần tử vô hướng được đánh chỉ mục, bắt đầu từ 0.

Bảng băm là một tập không thứ tự các giá trị vô hướng được đánh chỉ mục bởi các chuỗi giá trị khóa kết hợp của chúng.

Cấu trúc điều khiển

Subroutine 
Giống như nhiều ngôn ngữ lập trình khác, Perl cho phép người dùng định nghĩa thêm các subroutine (hàm con). Các subroutine có thể đặt bất cứ nơi đâu trong chương trình chính, hoặc tải về từ các tập tin khác bằng cách dùng các từ khóa do, require hoặc use, hoặc được tạo ra tức thì bởi từ khóa eval hay các subroutine vô danh.

Biểu thức chính quy

Giao diện với các hệ cơ sở dữ liệu

Tối ưu hoá

Tương lai

Xem thêm

Liên kết ngoài 
 Download/Upload các Perl cript miễn phí
 Perl.org - Trang chủ chính thức của Perl
 Perldoc at Perl.org - tài liệu trực tuyến của Perl
 IndigoPerl  - bản phân phối của Perl dành cho Microsoft Windows

Chú thích 

Ngôn ngữ lập trình
Trình biên dịch và thông dịch miễn phí
Phát minh của Hoa Kỳ
Ngôn ngữ lập trình thủ tục
Phần mềm đa nền tảng
Ngôn ngữ lập trình hướng đối tượng
Họ ngôn ngữ lập trình C