1. Shlomi Fish
  2. perl-begin


perl-begin / src / learn / index.html.wml

#include '../template.wml'

<latemp_subject "Learn Perl Now" />

<h2 id="how-to-learn"><strong>How</strong> to Learn Perl?</h2>

<a href="$(ROOT)/resources/"><b>See our resources for Perl Beginners</b></a> 
and browse the site on its navigation menu. Among them are:


<a href="$(ROOT)/tutorials/">Online Tutorials</a> - online tutorials for
learning Perl. Also see our 
<a href="$(ROOT)/tutorials/perl-for-newbies/">local tutorial</a>.

<a href="$(ROOT)/books/">Books</a> - some of them are legally available

<a href="$(ROOT)/core-doc/">The Perl Core Documentation</a> - what ships
with Perl. Contains topical tutorials and references.


<h2 id="why-learn"><strong>Why</strong> should I learn Perl?</h2>

<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 don't have to <b>deal with
a lot of idiosyncracies</b> like memory allocation and freeing, passing a 
context  variable; the code is <b>brief and effective</b>; there is a 
<b>lot of Do-What-I-Means</b> (DWIMmeries) that make life simpler; 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 extensively</b> 
and you can get a <b>lot of interactive, human answers</b> 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 

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 <b>used for a lot of diverse tasks</b>: 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 <b>most important programming paradigms</b>, and 
implemented them in a consistent and fun way. It is a <b>dynamic language</b>, 
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 to a large extent on most of those languages.

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="http://www.cpan.org/">the Comprehensive Perl Archive 
Network</a>, which is a <b>huge collection of useful</b> (and not-so-useful) 
re-usable Perl modules, under an open source licence. They allow you to use 
them as libraries to facilitate writing your code. So instead of starting
to write something yourself, <a href="http://search.cpan.org/">do a CPAN 
search</a>, 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, and then better and better with