Difference between revisions of "Perl"

From Christoph's Personal Wiki
Jump to: navigation, search
(External links)
(My favourites)
 
(5 intermediate revisions by the same user not shown)
Line 19: Line 19:
 
*[[Perl/Modules/Lingua]]
 
*[[Perl/Modules/Lingua]]
 
*[http://dbi.perl.org/ DBI]
 
*[http://dbi.perl.org/ DBI]
 +
*[http://search.cpan.org/~abigail/Regexp-Common-2.120/lib/Regexp/Common.pm Regexp::Common]
 
*[http://search.cpan.org/~abw/Math-Bezier-0.01/Bezier.pm Math::Bezier]
 
*[http://search.cpan.org/~abw/Math-Bezier-0.01/Bezier.pm Math::Bezier]
 
*[http://search.cpan.org/~petdance/WWW-Mechanize-1.20/lib/WWW/Mechanize.pm WWW::Mechanize] (see: [http://www.perl.com/pub/a/2003/01/22/mechanize.html])
 
*[http://search.cpan.org/~petdance/WWW-Mechanize-1.20/lib/WWW/Mechanize.pm WWW::Mechanize] (see: [http://www.perl.com/pub/a/2003/01/22/mechanize.html])
 
*[http://search.cpan.org/~gwilliams/WWW-Search-PubMed-1.002/lib/WWW/Search/PubMed.pm WWW::Search::PubMed] (see: [http://eutils.ncbi.nlm.nih.gov/entrez/query/static/esearch_help.html])
 
*[http://search.cpan.org/~gwilliams/WWW-Search-PubMed-1.002/lib/WWW/Search/PubMed.pm WWW::Search::PubMed] (see: [http://eutils.ncbi.nlm.nih.gov/entrez/query/static/esearch_help.html])
 
*[http://search.cpan.org/~muenalan/WWW-Search-NCBI-PubMed-0.01/lib/WWW/Search/NCBI/PubMed.pm WWW::Search::NCBI::PubMed]
 
*[http://search.cpan.org/~muenalan/WWW-Search-NCBI-PubMed-0.01/lib/WWW/Search/NCBI/PubMed.pm WWW::Search::NCBI::PubMed]
 +
*[http://search.cpan.org/~gaas/libwww-perl-5.808/lib/LWP/Simple.pm LWP::Simple] — simple procedural interface to LWP
 +
*[http://search.cpan.org/~jgamble/Math-Polynomial-Solve-2.11/lib/Math/Polynomial/Solve.pm Math::Polynomial::Solve]
 +
*[http://search.cpan.org/dist/Lingua-EN-Keywords-2.0/Keywords.pm Lingua::EN::Keywords]
 
*[http://search.cpan.org/~spectrum/MediaWiki-1.08/lib/MediaWiki.pm MediaWiki]
 
*[http://search.cpan.org/~spectrum/MediaWiki-1.08/lib/MediaWiki.pm MediaWiki]
 +
*[http://petdance.com/ack/ ack] — a grep-like tool
 
*[[mvs]]
 
*[[mvs]]
  
Line 30: Line 35:
 
  cpan>install Bundle::CPAN
 
  cpan>install Bundle::CPAN
 
  cpan>q
 
  cpan>q
 +
 +
*Force CPAN to produce a list of all the modules that have updates and update them:
 +
/usr/bin/perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
  
 
==Perlrun==
 
==Perlrun==
Line 88: Line 96:
 
*"''[http://www.perl.org/books/beginning-perl/ Beginning Perl]''" — full book online (as PDFs).
 
*"''[http://www.perl.org/books/beginning-perl/ Beginning Perl]''" — full book online (as PDFs).
 
*[http://wiki.python.org/moin/PerlPhrasebook Perl/Python Phrasebook]
 
*[http://wiki.python.org/moin/PerlPhrasebook Perl/Python Phrasebook]
 +
*[http://www.rosettacode.org/wiki/Main_Page Rosetta Code]
 +
*[http://www.perlmonks.org/?node_id=632023 Yet Another Rosetta Code Problem (Perl, Ruby, Python, Haskell, ...)]
 
*[http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/text-manipulation-tools.html Text manipulation tools] — from GNU/Linux Command-Line Tools Summary
 
*[http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/text-manipulation-tools.html Text manipulation tools] — from GNU/Linux Command-Line Tools Summary
 
*[http://wiki.mandriva.com/en/Policies/Perl Mandriva Perl library packaging policy] (wiki)
 
*[http://wiki.mandriva.com/en/Policies/Perl Mandriva Perl library packaging policy] (wiki)

Latest revision as of 04:15, 31 March 2008

Perl is a dynamic programming language.

see: scripts for examples

Regex

see: Regular expression

Search and replace all "foo" with "bar" in filename:

perl -i -pe 's/foo/bar/gi' filename

Modules

Search and download: http://search.cpan.org/

Installing

perl -MCPAN -e shell
#Or,
perl -MCPAN -e "install Example::Module"

My favourites

Upgrade CPAN

% perl -MCPAN -e shell
cpan>install Bundle::CPAN
cpan>q
  • Force CPAN to produce a list of all the modules that have updates and update them:
/usr/bin/perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'

Perlrun

Here is an excerpt from 'man perlrun' about the important command line switches used when doing perl one-liners.

    -a   turns on autosplit mode when used with a -n or -p.  An implicit
         split command to the @F array is done as the first thing inside the
         implicit while loop produced by the -n or -p.
              perl -ane 'print pop(@F), "\n";'
         is equivalent to
             while (<>) {
                 @F = split(' ');
                 print pop(@F), "\n";
             }
         An alternate delimiter may be specified using -F.
    -e commandline
         may be used to enter one line of script.  If -e is given, Perl will
         not look for a script filename in the argument list.  Multiple -e
         commands may be given to build up a multi-line script.  Make sure to
         use semicolons where you would in a normal program.
    -n   causes Perl to assume the following loop around your script, which
         makes it iterate over filename arguments somewhat like sed -n or
         awk:
             while (<>) {
                 ...             # your script goes here
             }
         Note that the lines are not printed by default.  See -p to have
         lines printed.  If a file named by an argument cannot be opened for
         some reason, Perl warns you about it, and moves on to the next file.
    -p   causes Perl to assume the following loop around your script, which
         makes it iterate over filename arguments somewhat like sed:
             while (<>) {
                 ...             # your script goes here
             } continue {
                 print or die "-p destination: $!\n";
             }
         If a file named by an argument cannot be opened for some reason,
         Perl warns you about it, and moves on to the next file.  Note that
         the lines are printed automatically.  An error occuring during
         printing is treated as fatal.  To suppress printing use the -n
         switch.  A -p overrides a -n switch.

BioPerl

See: http://www.bioperl.org/wiki/Main_Page

See also

External links

Resources/Books

This article is curently a "stub". This means it is an incomplete article needing further elaboration.

I always welcome suggestions, comments, and criticism. If you have something to contribute to this site, please follow this link: Contributing Information. Thank you!