Perl

created by chimaera
(idea) by chimaera (?) (print)   (I like it!) 1 C! Sat Nov 13 1999 at 8:39:47
Practical Extraction and Report Language. Perl is a language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). Created by Larry Wall. Only perl can parse Perl.
(thing) by feoh (1.6 y) (print)   (I like it!) 1 C! Thu Dec 30 1999 at 17:04:28
The Pathetically Eclectic Rubbish Lister is a quirky and downright bizarre language originally designed by Larry Wall. Known as the Swiss Army Chainsaw, Perl has grown into a leviathan like entity, having grown new tentacles for OO, complex data structures and real scoping. Perl's design sacrafices abstraction for flexibility. This makes the language a veritable powerhouse for the seasoned guru but a patch of deadly quicksand for the unwary newbie. One of Perl's mottos is 'TAMTOWTDI' There's Always More Than One Way To Do It. This can be both a good and a bad thing. Another good option for newbies needing to write a script is Python, which brings a greater level of abstraction to the table, making the 99% of what people want to do much simpler while making the 1% of tasks the gurus need to do slightly more verbose. Recently I've become very enamoured with Ruby. It brings all the benefits I outlined above while describing Python to the table without sacraficing the conciseness that Perl geeks seem to crave while maintaining a very high level of readability.
(thing) by li (7.5 mon) (print)   (I like it!) 1 C! Sun Apr 09 2000 at 10:00:09

It is the most widely used programming language on earth, thanks to the popularity and accessibility of the Web. Programmers don't have all the time in the world, they need something that do powerful things and resembles English (or any practical language we humans like) so that it's easy to learn. They pick Perl often because of this.

An astonishing number of web users use it everyday and never know it. It's like that widget that keeps your fridge cold. Some widgets just don't advertise themselves.

Perhaps we don't want to hear about it, I can live with fewer logos and brand names personally--please hide the widget that makes the fridge code and don't tag it with logos.

Perl is different, you won't want it hidden, it's too useful. Like English. You want it exposed. Often used.

You need to use your brain, and feel fun and creative, have an itch to solve problem, possess copious amount of laziness so that you'll want to solve it with the minimum amount of fuss. But that's it.

Something simple and fun: I often find that my favorite online services are created using Perl. I learned to do this with a service call the Netcraft Website Finder (at www.netcraft.com). Consider writing down the web address to 10 of your most favorite websites and do a simple search on Netcraft. For example, my first entry is "www.everything2.com". After clicking on the go button I get an answer telling me that Perl is powering www.everything2.com! It's not always so straight-forward. If it says it's running Apache, Linux, mod_perl, or cgi or just some long winded phrase or product with any of those previously mentioned words--chances are that perl is an integral part of that web service. You may learn that few people will have a list where none of the sites use Perl.

Interesting things you can do with Perl:

(idea) by ymelup (2.3 y) (print)   (I like it!) 2 C!s Tue Oct 24 2000 at 18:21:41
Perl isn't really a swiss army knife. That's more like C. Perl is a large, metallic toolbox containing: a complete set of box-end wrenches in metric and imperial, except 10mm and 3/8"; a selection of five machinists' hammers; one regular construction hammer; ten- and twelve-pound sledgehammers; complete set of Robertson screwdrivers; and an infinite length of duct tape.
-- Charles Cazabon
(thing) by thbz-gene (4.2 y) (print)   (I like it!) Fri Dec 01 2000 at 8:26:57

This is the genealogy of the programming language Perl:

Perl is a child of awk, sh, C, csh, Pascal and Basic.
Perl was first known as Perl 1.000 in year 1987.
It became Perl 2.000 in year 1988.
It became Perl 3.000 in year 1989.
It became Perl 4.000 in year 1991.
Then it begat Ruby in year 1993.
It became Perl 5.000 in year 1994.
Then it begat PHP in year 1995.
It became Perl 5.005_50 in year 1998.
It became Perl 5.6.0 in year 2000.
It became Perl 5.8.0 in year 2002, and has not changed much since that time.

If you cannot believe that Perl is a child of Basic or Pascal, read the Perl man page. Perl is also a child of sed, which has no entry here because sed is an editor, not a language.

This genealogy is brought to you by the Programming Languages Genealogy Project. Please send comments to thbz.

(idea) by Sverre (1.6 y) (print)   (I like it!) 1 C! Tue Apr 03 2001 at 13:30:24
This is a list of all functions and magic variables in Perl.
Note that very few of the links have been created as nodes. Feel free to help me out on this. :)

- A -
$^A
-A
abs
accept
$ACCUMULATOR
alarm
atan2
$ARG ($_)
@ARGV
$ARGV
autoflush

- B -
-b
-B
$BASETIME
bind
binmode
bless

- C -
-c
-C
caller
chdir
$CHILD_ERROR ($?)
chmod
chomp
chop
chown
chr
chroot
close
closedir
connect
continue
cos
crypt

- D -
$^D
-d
dbmclose
dbmopen
$DEBUGGING
defined
delete
die
do
dump

- E -
$^E
-e
each
$EFFECTIVE_GROUP_ID ($))
$EFFECTIVE_USER_ID ($>)
$EGID
endgrent
endhostent
endnetent
endprotoent
endpwent
endservent
$ENV{expr}
eof
$ERRNO
$EUID
$EVAL_ERROR ($@)
eval
exec
$EXECUTABLE_NAME
exists
exit
exp
$EXTENDED_OS_ERROR

- F -
$^F
-f
fcntl
fileno
flock
fork
$FORMAT_FORMFEED
format_formfeed
$FORMAT_LINE_BREAK_CHARACTERS ($:)
format_line_break_characters
$FORMAT_LINES_LEFT
format_lines_left
$FORMAT_LINES_PER_PAGE
format_lines_per_page
$FORMAT_NAME
format_name
$FORMAT_PAGE_NUMBER
format_page_number
$FORMAT_TOP_NAME
format_top_name
format
formline

- G -
-g
getc
getgrent
getgrgid
getgrnam
gethostbyaddr
gethostbyname
gethostent
getlogin
getnetbyaddr
getnetbyname
getnetent
getpeername
getpgrp
getppid
getpriority
getprotobyname
getprotobynumber
getprotoent
getpwent
getpwnam
getpwuid
getservbyname
getservbyport
getservent
getsockname
getsockopt
$GID
glob
gmtime
goto
grep

- H -
$^H
hex

- I -
import
$^I
%INC
@INC
index
$INPLACE_EDIT
$INPUT_LINE_NUMBER ($.)
input_line_number
$INPUT_RECORD_SEPARATOR ($/)
input_record_separator
int
ioctl

- J -
join

- K -
-k
keys
kill

- L -
$^L
-l
$LAST_PAREN_MATCH
last
lc
lcfirst
length
link
$LIST_SEPARATOR ($")
listen
local
localtime
log
lstat

- M -
m//
$^M
-M
map
$MATCH
mkdir
msgctl
msgget
msgrcv
msgsnd
$MULTILINE_MATCHING
my

- N -
next
no
$NR

- O -
$^O
-o
-O
oct
$OFMT ($#)
$OFS
open
opendir
ord
$ORS
$OS_ERROR ($!)
$OSNAME
$OUTPUT_AUTOFLUSH
$OUTPUT_FIELD_SEPARATOR ($,)
output_field_separator
$OUTPUT_RECORD_SEPARATOR ($\)
output_record_separator

- P -
$^P
-p
pack
package
$PERL_VERSION
$PERLDB
$PID
pipe
pop
pos
$POSTMATCH
$PREMATCH
print
printf
$PROCESS_ID ($$)
$PROGRAM_NAME
prototype
push

- Q -
q/STRING/
qq/STRING/
quotemeta
qw/STRING/
qx/STRING/

- R -
-r
-R
rand