Is PERL dead? Is PERL still there? Is Perl still used? Why should I care about Perl?

Perl:

Perl 1.0 was developed for system admins to parse huge logs and extract human readable reports/summary. Later became a web language due to the ability of managing the strings/text very effectively. The text parsing engine become handy in generating HTMLs. In the days of 1997,  addition of CGI.pm to Perl 5.004 helps the Perl to became main stream web language. Perl has ruled as CGI scripting language with PHP at that time.

Version 1: Larry Wall, a programmer at Unisys released the version 1.0 to the comp.sources.misc newsgroup on December 18, 1987. The language expanded rapidly over the next few years.

Perl 2, released in 1988, featured a better regular expression engine.

Perl 3, released in 1989, added support for binary data streams.

Perl 4.036 released in 1993 having enhancements to Perl 3.

Perl 5.000 was released on October 17, 1994, the complete rewrite of the interpreter, and many new features were added to the language, including objects, references, lexical (my) variables, and modules.

Importantly, modules provided a mechanism for extending the language without modifying the interpreter. 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.

Perl 5.001 was released on March 13, 1995.

Perl 5.002 was released on February 29, 1996 with the new prototypes feature. This allowed module authors to make subroutines that behaved like Perl built-ins.

The most important milestone in the life of Perl 5  was its module support. In 1995, the Comprehensive Perl Archive Network (CPAN) was established as a repository for Perl modules and Perl itself. Till today this is very active and contains million modules and mirrored worldwide.

http://www.cpan.org/

Perl 5.004 was released on May 15, 1997, and included among other things the UNIVERSAL package, giving Perl a base object to which all classes were automatically derived and the ability to require versions of modules.

Another significant development was the inclusion of the CGI.pm module, which contributed to Perl’s popularity as a CGI scripting language.

Perl is also now supported running under Microsoft Windows and several other operating systems.

Perl 5.005 was released on July 22, 1998. This release included several enhancements to the regex engine, new hooks into the backend through the B::* modules, the qr// regex quote operator, a large selection of other new core modules, and added support for several more operating systems, including BeOS.

2000–present latest stable version is 5.6. Major changes included 64-bit support, Unicode string representation, large file support (i.e. files over 2 GiB) and the “our” keyword

Why Use Perl for CGI?

Socket Support-create programs that interface seamlessly with Internet protocols. Your CGI program can send a Web page in response to a transaction and send a series of e-mail messages to inform interested people that the transaction happened.

Pattern Matching-ideal for handling form data and searching text.

Flexible Text Handling– The way that Perl handles strings, in terms of memory allocation and deallocation, fades into the background as you program. You simply can ignore the details of concatenating, copying, and creating new strings. Perl includes powerful tools for processing text that make it ideal for working with HTML, XML, and all other mark-up and natural languages.

Today, Perl isn’t used very much in this area, as other languages like PHP have taken over this specific niche. While Perl is a general-purpose programming language that was used for the Web, PHP was specifically built for creating websites via CGI.

Perl Web Framework

  • Dancer (software)- Dancer (basically just a simple way to map routes to templates)
  • Mojolicious (a very complete, low-dependency web framework)

As these frameworks are built on PSGI, they can be deployed via CGI or via any other interface where appropriate middleware exists (there are also a few specialized PSGI servers).

 Test.pl code for any web web server

Test.pl

$url = “http://$ENV{SERVER_NAME}$ENV{URL}”;

$ip = “$ENV{REMOTE_ADDR}”;

print <<ENDOFTEXT;

HTTP/1.0 200 OK

Content-Type: text/html

<HTML>

<HEAD><TITLE>PERL as CGI</TITLE></HEAD>

<BODY>

<H4>Hello from PERL 5</H4>

<P>URL: <a href=”$url”>$url</a></P>

<P>IP address: $ip</P>

</BODY>

</HTML>

ENDOFTEXT

 

exit(0);

The highlighted portion in above code is http header. When returned from Windows IIS, then only this is required. Apache add this automatically to response.

HTTP/1.0 200 OK

Content-Type: text/html

Just another sample.code

Sending inputs/textbox to formProcess.pl from form.htm;  yes, we do not need Perl to post, its action of the form, doing the job

form.htm

<FORM action=”/formProcess.pl” method=”GET”>
First Name: <input type=”text” name=”first_name”> <br>

Last Name: <input type=”text” name=”last_name”>
<input type=”submit” value=”Submit”>
</FORM>

Getting Input from Text Box in formProcess.pl : use of CGI.pm

formProcess.pl

use CGI;
my $cgi = new CGI;

my $fname = $cgi->param( ‘first_name’ ) || ”; # capturing first_name from form.htm into $fname variable
my $lname = $cgi->param( ‘last_name’ ) || ”; # capturing last_name from form.htm into $lname variable

print <<ENDOFTEXT;
HTTP/1.0 200 OK
Content-Type: text/html

<HTML>
<HEAD><TITLE>Hello PERL!</TITLE></HEAD>
<BODY>
<H4>Name</H4>
<P>$fname</P>
<P>$lname</P>
</BODY>
</HTML>
ENDOFTEXT
exit(0);

As Perl was become main stream web language, many web applications were developed at that time. Most of these applications are still live and very much used. That is why Perl is not dead and its continuously evolving.

Now you can jump to  Perl 6 (https://perl6.org/) to continue…

……

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s