About PerlcheatAUTHOR | Juerd Waalboer, with the help of many Perl Monks. | the original PM post | | Damian Conway's Perl 6 version | | home of the Perl Cheat Sheet | |
SIGILS$scalar | @array | %hash | &sub | *glob |
ARRAYS,HASHES | ARRAYS | HASHES | whole: | @array | %hash | slice: | @array[0, 2] | @hash{'a', 'b'} | element: | $array[0] | $hash{'a'} |
SCALAR VALUESnumber, string, reference, glob, undef |
SYNTAXfor (LIST) { }, for (a;b;c) { } | while ( ) { }, until ( ) { } | if ( ) { } elsif ( ) { } else { } | unless ( ) { } elsif ( ) { } else { } | for equals foreach (ALWAYS) |
LINKSSearch the CPAN - metacpan.org | | Perl Weekly | | PerlMonks - The Monastery Gates | | What's happening in the world of Perl programming, including Perl 5, Perl 6, the CPAN and Parrot? | | | | News and views of the Perl programming language | | Perl programming documentation - perldoc.perl.org | | Perl Conferences, YAPCs, Workshops, and Hackathons | | Perl 6 | | Perl 6 Tablet 2 - Basic Syntax | | Learn Perl - learn.perl.org | | Perl - Download | | The Perl.org Online Library | | Books and More (Videos) | | Padre, the Perl IDE | | perlcheat | | Gabor Szabo Perl Trainer and developer | | Perl,Perl Mongers,Mongers,User Group,Meeting | | Facebook vs Google+ for Perl projects | | Lections about Per from Gabor Szabo | | mod_perl world | | Interpreted Languages: PHP, Perl, Python, Ruby (Sheet One) | | Moose - A postmodern object system for Perl | | Perl Training Australia - Perl Tips | | Basic Perl (Ynon Perek | An Amazing Learning Experience) , super | | Perl Questions - Stack Overflow | | Perl - Cheat sheets Collection | | complete, working examples of good Perl code | | Perl Programming Tutorials | | Video from UniverTV | | FAQ по perl и программированию для web | | FAQ PERL Agava | |
Modern::PerlModern::Perl enable all of the features of Modern Perl with one import | Toolkit use Toolkit; and put all your favorite modules in a file: > cat $PERL5LIB/Toolkit/Macros/ALWAYS/Modules use strict; use warnings; use Carp; use Smart::Comments; | use common::sense; supposed to be the same, with much lower memory usage, as: # # use strict qw(vars subs); # use feature qw(say state switch); # no warnings; # use warnings qw(FATAL closed threads internal debugging pack substr malloc # unopened portable prototype inplace io pipe unpack regexp # deprecated exiting glob digit printf utf8 layer # reserved parenthesis taint closure semicolon); # no warnings qw(exec newline); | latest There is latest, which is no longer the latest. Demonstrates part of the naming problem. | uni::perl Also, uni::perl which adds enabling unicode part of the mix. | ToolSet ToolSet offers a subset of Toolkit's abilities, but without source filters. | Moose I'll include Moose here, since it automatically adds strict and warnings to the calling package. | Acme::Very::Modern::Perl Using this module, you'll get Modern::Perl, Toolkit, latest, uni::perl, perl5i, and common::sense with just one simple line. | Source |
| | REGEX METACHARS^ | string begin | $ | str. end (before \n) | + | one or more | * | zero or more | ? | zero or one | {3,7} | repeat in range | () | capture | (?:) | no capture | [] | character class | | | alternation | \b | word boundary | \z | string end | |
REGEX CHARCLASSES. | [^\n] | \s | [\x20\f\t\r\n] | \w | [A-Za-z0-9_] | \d | [0-9] | \S, \W and \D | negate |
REGEX MODIFIERS/i | case insens. | /m | line based ^$ | /s | . includes \n | /x | ign. wh.space | /g | global | \Q | quote (disable) pattern metacharacters till \E | \E | end either case modification or quoted section, think vi |
FUNCTION RETURN LISTSstat | localtime | caller | 0 dev | 0 second | 0 package | 1 ino | 1 minute | 1 filename | 2 mode | 2 hour | 2 line | 3 nlink | 3 day | 3 subroutine | 4 uid | 4 month-1 | 4 hasargs | 5 gid | 5 year-1900 | 5 wantarray | 6 rdev | 6 weekday | 6 evaltext | 7 size | 7 yearday | 7 is_require | 8 atime | 8 is_dst | 8 hints | 9 mtime | | 9 bitmask | 10 ctime | just use | 11 blksz | POSIX:: | 3..9 only | 12 blcks | | with EXPR |
opendir & grep:opendir(DIR,"$SCANDATA");
@files = sort(grep(/[0-9]\.[0-9]\-/,readdir(DIR)));
closedir(DIR); |
hash iteration:while (($key,$val) = each (%hash)) { } |
Perl IDEsource | | Padre | | Eclipse | | ActiveState | | Kephra | | Gvim | | Emacs | | Perl Development Tools | |
| | Escape sequences\t | tab (HT, TAB) | \n | newline (LF, NL) | \r | return (CR) | \f | form feed (FF) | \a | alarm (bell) (BEL) | \e | escape (think troff) (ESC) | \cK | control char (example: VT) | \x{}, \x00 | character whose ordinal is the given hexadecimal number | \N{name} | amed Unicode character or character sequence | \N{U+263D} | Unicode character (example: FIRST QUARTER MOON) | \o{}, \000 | character whose ordinal is the given octal number | \l | lowercase next char (think vi) | \u | uppercase next char (think vi) | \L | lowercase till \E (think vi) | \U | uppercase till \E (think vi) | \Q | quote (disable) pattern metacharacters till \E | \E | end either case modification or quoted section, think vi |
REFERENCES\ | $$foo[1] == | references | $foo->[1] | $@%&* | $$foo{bar}== | dereference | $foo->{bar} | {} | ${$$foo[1]}[2]== | anon. hashref | $foo->[1]->[2] | \() | ${$$foo[1]}[2]== | list of refs | $foo->[1][2] |
SPECIAL VARIABLES$_ | default variable | $0 | program name | $/ | input separator | $\ | output separator | $| | autoflush | $! | sys/libcall error | $@ | eval error | $$ | process ID | $. | line number | @ARGV | command line args | @INC | include paths | @_ | subroutine args | %ENV | environment |
NUMBERS vs STRINGSNUMBERS | STRINGS | = | = | . | . | == != | eq ne | < > <= >= | lt gt le ge | <=> | cmp |
DOuse Modern::Perl; | use strict; | use warnings; | my $var; | open() or die $!; | use Modules; |
DON'T"$foo" | $$variable_name | $userinput
| /$userinput/ |
capitalizing:word: $foo = ucfirst lc $foo;
each word: $foo =~ s/(\w+)/\u\L$1/g; |
referencing a subroutine:$SUBNAME = "junk";
&$SUBNAME(@PARAMETERS); |
foreach:foreach $FILE (@FILES) { } |
OPERATOR PRECEDENCE-> | ++ -- | ** | ! ~ \ u+ u- | =~ !~ | * / % x | + - . | << >> | named uops | < > <= >= lt gt le ge | == != <=> eq ne cmp | & | | ^ | && | || | .. ... | ?: | = += -= *= etc. | , => | list ops | not | and | or xor |
Link to perl cheatperlcheat | perl-reference-card | 20-killer-perl-programming-tips |
|
Created By
mishin.narod.ru
Metadata
Favourited By
Comments
Great cheat sheet, mishin! Loads of info :)
Thanks, Dave, cool engine!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by mishin