Perl Tutorial - Tutorialspoint
Perl is a family of two high-level , general-purpose , interpreted , dynamic programming languages. Though Perl is not officially an acronym,  there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl 6 , which began as a redesign of Perl 5 in , eventually evolved into a separate language. Both languages continue to be developed independently by different development teams and liberally borrow ideas from one another. Perl 5 gained widespread popularity in the late s as a CGI scripting language, in part due to its unsurpassed regular expression and string parsing abilities.
In addition to CGI, Perl 5 is used for system administration , network programming , finance, bioinformatics , and other applications, such as for GUIs. It has been nicknamed "the Swiss Army chainsaw of scripting languages" because of its flexibility and power,  and also its ugliness.
Larry Wall began work on Perl in , while working as a programmer at Unisys ,  and released version 1. Perl 2, released in , featured a better regular expression engine. Perl 3, released in , added support for binary data streams. Originally, the only documentation for Perl was a single lengthy man page.
In , Programming Perl , known to many Perl programmers as the "Camel Book" because of its cover, was published and became the de facto reference for the language. At the same time, the Perl version number was bumped to 4, not to mark a major change in the language but to identify the version that was well documented by the book.
Perl 4 went through a series of maintenance releases , culminating in Perl 4. Initial design of Perl 5 continued into The perl5-porters mailing list was established in May to coordinate work on porting Perl 5 to different platforms. It remains the primary forum for development, maintenance, and porting of Perl 5. Perl 5. Importantly, modules provided a mechanism for extending the language without modifying the interpreter.
- Pushing Boundaries: Language and Culture in a Mexicano Community;
- Perl help, examples, and tutorials?
- Competencies for Advanced Nursing Practice?
This allowed the core interpreter to stabilize, even as it enabled ordinary Perl programmers to add new language features. Perl 5 has been in active development since then. This allowed module authors to make subroutines that behaved like Perl builtins. One of the most important events in Perl 5 history took place outside of the language proper and was a consequence of its module support. On October 26, , the Comprehensive Perl Archive Network CPAN was established as a repository for the Perl language and Perl modules ; as of May , it carries over , modules in 35, distributions, written by more than 13, authors, and is mirrored worldwide at more than locations.
Another significant development was the inclusion of the CGI. Major changes included bit support, Unicode string representation, support for files over 2 GiB, and the "our" keyword. In , Wall put forth a call for suggestions for a new version of Perl from the community.
The process resulted in RFC request for comments documents that were to be used in guiding development of Perl 6. In ,  work began on the "Apocalypses" for Perl 6 , a series of documents meant to summarize the change requests and present the design of the next generation of Perl. They were presented as a digest of the RFCs, rather than a formal document. At this point, Perl 6 existed only as a description of a language.
This effort stalled in On December 18, , the 20th anniversary of Perl 1.
Perl Programming for the Data Masses
As of November , Rakudo Perl has had regular monthly releases and now is the most complete implementation of Perl 6. A major change in the development process of Perl 5 occurred with Perl 5.
By that plan, bugfix point releases will follow the stable releases every three months. On April 12, , Perl 5. The latest version of that branch, 5. On May 14, , Perl 5. JSON support is built-in as of 5. On May 20, , Perl 5. Notable new features include the ability to specify a given version of Perl that one wishes to emulate, allowing users to upgrade their version of Perl, but still run old scripts that would normally be incompatible.
On May 18, , Perl 5. Notable new features include the new dtrace hooks, lexical subs, more CORE:: subs, overhaul of the hash for security reasons, support for Unicode 6. On May 27, , Perl 5. Some observers credit the release of Perl 5. In late and , several projects for alternative implementations for Perl 5 started: Perl5 in Perl6 by the Rakudo Perl team,  moe by Stevan Little and friends,  p2  by the Perl11 team under Reini Urban, gperl by goccy,  and rperl a kickstarter project led by Will Braswell and affiliated with the Perll11 project.
It was an effort to rewrite the Perl 5 interpreter to run on Parrot , the Perl 6 virtual machine.
Perl help in exchange for books
The goal was to ensure the future of the millions of lines of Perl 5 code at thousands of companies around the world. Perl was originally named "Pearl". Wall wanted to give the language a short name with positive connotations; he claims that he considered every three- and four-letter word in the dictionary. He also considered naming it after his wife Gloria.
Wall discovered the existing PEARL programming language before Perl's official release and changed the spelling of the name. When referring to the language, the name is normally capitalized Perl as a proper noun. When referring to the interpreter program itself, the name is often uncapitalized perl because most Unix-like file systems are case-sensitive. Before the release of the first edition of Programming Perl , it was common to refer to the language as perl ; Randal L.
Schwartz , however, capitalized the language's name in the book to make it stand out better when typeset. This case distinction was subsequently documented as canonical. The name is occasionally expanded as Practical Extraction and Report Language , but this is a backronym.
The Perl base
Programming Perl , published by O'Reilly Media , features a picture of a dromedary camel on the cover and is commonly called the "Camel Book". O'Reilly owns the image as a trademark but licenses it for non-commercial use, requiring only an acknowledgement and a link to www. Licensing for commercial use is decided on a case by case basis. The analogue of the raptor comes from a series of talks given by Matt S Trout beginning in According to Wall, Perl has two slogans. The second slogan is "Easy things should be easy and hard things should be possible". The overall structure of Perl derives broadly from C.
Perl is procedural in nature, with variables , expressions , assignment statements , brace -delimited blocks , control structures , and subroutines.
Perl also takes features from shell programming. All variables are marked with leading sigils , which allow variables to be interpolated directly into strings.
What is Perl? How relevant it is and how to get started!
However, unlike the shell, Perl uses sigils on all accesses to variables, and unlike most other programming languages that use sigils, the sigil doesn't denote the type of the variable but the type of the expression. Perl also has many built-in functions that provide tools often used in shell programming although many of these tools are implemented by programs external to the shell such as sorting , and calling operating system facilities.
Perl takes lists from Lisp , hashes "associative arrays" from AWK , and regular expressions from sed. These simplify and facilitate many parsing, text-handling, and data-management tasks. Also shared with Lisp are the implicit return of the last value in a block, and the fact that all statements have a value, and thus are also expressions and can be used in larger expressions themselves. Perl 5 added features that support complex data structures , first-class functions that is, closures as values , and an object-oriented programming model.
These include references , packages, class-based method dispatch , and lexically scoped variables , along with compiler directives for example, the strict pragma. A major additional feature introduced with Perl 5 was the ability to package code as reusable modules. Wall later stated that "The whole intent of Perl 5's module system was to encourage the growth of Perl culture rather than the Perl core. All versions of Perl do automatic data-typing and automatic memory management.
The interpreter knows the type and storage requirements of every data object in the program; it allocates and frees storage for them as necessary using reference counting so it cannot deallocate circular data structures without manual intervention. Legal type conversions — for example, conversions from number to string — are done automatically at run time ; illegal type conversions are fatal errors.
The design of Perl can be understood as a response to three broad trends in the computer industry: falling hardware costs, rising labor costs, and improvements in compiler technology. Many earlier computer languages, such as Fortran and C, aimed to make efficient use of expensive computer hardware. In contrast, Perl was designed so that computer programmers could write programs more quickly and easily.
Perl has many features that ease the task of the programmer at the expense of greater CPU and memory requirements. These include automatic memory management; dynamic typing ; strings, lists, and hashes; regular expressions; introspection; and an eval function. Perl follows the theory of "no built-in limits,"  an idea similar to the Zero One Infinity rule. Wall was trained as a linguist, and the design of Perl is very much informed by linguistic principles.