109 lines
4.4 KiB
Plaintext
109 lines
4.4 KiB
Plaintext
=head1 NAME
|
|
|
|
perlcheat - Perl 5 Cheat Sheet
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This 'cheat sheet' is a handy reference, meant for beginning Perl
|
|
programmers. Not everything is mentioned, but 195 features may
|
|
already be overwhelming.
|
|
|
|
=head2 The sheet
|
|
|
|
CONTEXTS SIGILS ref ARRAYS HASHES
|
|
void $scalar SCALAR @array %hash
|
|
scalar @array ARRAY @array[0, 2] @hash{'a', 'b'}
|
|
list %hash HASH $array[0] $hash{'a'}
|
|
&sub CODE
|
|
*glob GLOB SCALAR VALUES
|
|
FORMAT number, string, ref, glob, undef
|
|
REFERENCES
|
|
\ reference $$foo[1] aka $foo->[1]
|
|
$@%&* dereference $$foo{bar} aka $foo->{bar}
|
|
[] anon. arrayref ${$$foo[1]}[2] aka $foo->[1]->[2]
|
|
{} anon. hashref ${$$foo[1]}[2] aka $foo->[1][2]
|
|
\() list of refs
|
|
SYNTAX
|
|
OPERATOR PRECEDENCE foreach (LIST) { } for (a;b;c) { }
|
|
-> while (e) { } until (e) { }
|
|
++ -- if (e) { } elsif (e) { } else { }
|
|
** unless (e) { } elsif (e) { } else { }
|
|
! ~ \ u+ u- given (e) { when (e) {} default {} }
|
|
=~ !~
|
|
* / % x NUMBERS vs STRINGS FALSE vs TRUE
|
|
+ - . = = undef, "", 0, "0"
|
|
<< >> + . anything else
|
|
named uops == != eq ne
|
|
< > <= >= lt gt le ge < > <= >= lt gt le ge
|
|
== != <=> eq ne cmp ~~ <=> cmp
|
|
&
|
|
| ^ REGEX MODIFIERS REGEX METACHARS
|
|
&& /i case insensitive ^ string begin
|
|
|| // /m line based ^$ $ str end (bfr \n)
|
|
.. ... /s . includes \n + one or more
|
|
?: /x /xx ign. wh.space * zero or more
|
|
= += last goto /p preserve ? zero or one
|
|
, => /a ASCII /aa safe {3,7} repeat in range
|
|
list ops /l locale /d dual | alternation
|
|
not /u Unicode [] character class
|
|
and /e evaluate /ee rpts \b boundary
|
|
or xor /g global \z string end
|
|
/o compile pat once () capture
|
|
DEBUG (?:p) no capture
|
|
-MO=Deparse REGEX CHARCLASSES (?#t) comment
|
|
-MO=Terse . [^\n] (?=p) ZW pos ahead
|
|
-D## \s whitespace (?!p) ZW neg ahead
|
|
-d:Trace \w word chars (?<=p) ZW pos behind \K
|
|
\d digits (?<!p) ZW neg behind
|
|
CONFIGURATION \pP named property (?>p) no backtrack
|
|
perl -V:ivsize \h horiz.wh.space (?|p|p)branch reset
|
|
\R linebreak (?<n>p)named capture
|
|
\S \W \D \H negate \g{n} ref to named cap
|
|
\K keep left part
|
|
FUNCTION RETURN LISTS
|
|
stat localtime caller SPECIAL VARIABLES
|
|
0 dev 0 second 0 package $_ default variable
|
|
1 ino 1 minute 1 filename $0 program name
|
|
2 mode 2 hour 2 line $/ input separator
|
|
3 nlink 3 day 3 subroutine $\ output separator
|
|
4 uid 4 month-1 4 hasargs $| autoflush
|
|
5 gid 5 year-1900 5 wantarray $! sys/libcall error
|
|
6 rdev 6 weekday 6 evaltext $@ eval error
|
|
7 size 7 yearday 7 is_require $$ process ID
|
|
8 atime 8 is_dst 8 hints $. line number
|
|
9 mtime 9 bitmask @ARGV command line args
|
|
10 ctime 10 hinthash @INC include paths
|
|
11 blksz 3..10 only @_ subroutine args
|
|
12 blcks with EXPR %ENV environment
|
|
|
|
=head1 ACKNOWLEDGEMENTS
|
|
|
|
The first version of this document appeared on Perl Monks, where several
|
|
people had useful suggestions. Thank you, Perl Monks.
|
|
|
|
A special thanks to Damian Conway, who didn't only suggest important changes,
|
|
but also took the time to count the number of listed features and make a
|
|
Perl 6 version to show that Perl will stay Perl.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Juerd Waalboer <#####@juerd.nl>, with the help of many Perl Monks.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
L<http://perlmonks.org/?node_id=216602> - the original PM post
|
|
|
|
=item *
|
|
|
|
L<http://perlmonks.org/?node_id=238031> - Damian Conway's Perl 6 version
|
|
|
|
=item *
|
|
|
|
L<http://juerd.nl/site.plp/perlcheat> - home of the Perl Cheat Sheet
|
|
|
|
=back
|