1. Shlomi Fish
  2. perl-begin


perl-begin / lib / why-perl.wml

<define-tag why_should_i_learn_perl>
<div class="further_reading">
For further reading see:

<li><a href="http://www.perl.org/advocacy/whyperl.html">Why Perl is a Valid
<li><a href="http://perltraining.com.au/whyperl.html">Perl Training
Australia - Why Perl?</a></li>

So why should you learn Perl? Here goes nothing:

<h3 id="perl_is_fun">1. Perl is Fun</h3>

Writing Perl code is very fun and rewarding:


You can avoid dealing with many idiosyncrasies like memory allocation and
freeing, passing a context variable to a function, or inconvenient syntax
for complex data structures.

The code is <b>brief</b> and effective.

There is a lot of <b>Do-What-I-Means</b> (DWIMmeries) that make programming

With a small amount of awareness your code can be <b>portable</b> across all
UNIXes, and even on Windows and other platforms.

Perl is <b>documented</b> extensively and you can get a lot of interactive,
human answers for your questions from <a href="$(ROOT)/mailing-lists/">mailing
lists</a>, <a href="$(ROOT)/irc/">online chats</a> and
<a href="$(ROOT)/web-forums/">web forums</a>.


Most serious Perl programmers <b>love their language</b> and love programming
in it.

<h3 id="perl_is_useful">2. Perl is Useful</h3>

Perl has been successfully used for a lot of diverse tasks: text
processing, system administration, web programming, web automation, GUI
programming, games programming, code generation, bio-informatics and
geneological research,  lingual and etymological research, number crunching,
and testing and quality assurance.

<h3 id="perl_is_portable">3. Perl is Open Source</h3>

Perl is fully <a href="http://en.wikipedia.org/wiki/Open-source_software">Free
(both gratis and libre) and Open Source Software</a>, and is usable for almost
any use. It can and has been used for in-house software, web software, open
source software, or open source or non-open-source commercial software (see
<a href="http://www.movabletype.org/">Movable Type</a> or
<a href="http://bestpractical.com/rt">Request Tracker</a> for

<h3 id="perl_can_show_the_world">4. Perl can Show You the World</h3>

Perl 5 has borrowed the most important programming <b>paradigms</b>, and
implemented them in a consistent and fun way. It is a dynamic language,
that supports Object-Oriented Programming (<b>OOP</b>), Functional
Programming (<b>FP</b>), Aspect-Oriented Programming, and lots of other
buzzwords, while not trying to prevent you from writing quick and dirty code
to get your work done.

As such, Perl is highly enlightening. If you know Perl well, you'll have no
problem picking up such languages as
<a href="http://www.python.org/">Python</a>,
<a href="http://www.ruby-lang.org/">Ruby</a>,
<a href="http://www.php.net/">PHP</a>,
<a href="http://java.sun.com/">Java</a>,
<a href="http://en.wikipedia.org/wiki/Microsoft_.NET">Microsoft .NET</a>,
or more obscure languages such as
<a href="http://www.schemers.org/">Scheme</a>. In fact, Perl has proven
very influential on most of these languages, to a large extent .

Perl is also a useful stepping stone for learning <a href="http://en.wikipedia.org/wiki/C_(programming_language)">ANSI C</a> and
C++, and also will improve your code writing in any language.

If you understand Perl, you'll understand the world!

<h3 id="perl_and_code_reuse">5. Don't re-invent the wheel! Re-use commonly
used, proven code</h3>

Perl has <a href="$(ROOT)/topics/cpan/">the <b>Comprehensive Perl Archive
Network (CPAN)</b></a>, which is a huge collection of useful (and
not-so-useful) re-usable Perl modules, under open source licences. They
allow you to use them as libraries to facilitate writing your code. So instead
of starting to write something yourself, do a CPAN search, or ask someone for
a recommendation for a good CPAN module.

<h2 id="how_do_i_start">Great! Now how do I start?</h2>

See our <a href="$(ROOT)/resources/">resources page</a> for links to pages
with online resources to get you up to speed with Perl, and then become better
at it.