1=head1 NAME 2 3perlcheat - Perl 5 Cheat Sheet 4 5=head1 DESCRIPTION 6 7This 'cheat sheet' is a handy reference, meant for beginning Perl 8programmers. Not everything is mentioned, but 195 features may 9already be overwhelming. 10 11=head2 The sheet 12 13 CONTEXTS SIGILS ref ARRAYS HASHES 14 void $scalar SCALAR @array %hash 15 scalar @array ARRAY @array[0, 2] @hash{'a', 'b'} 16 list %hash HASH $array[0] $hash{'a'} 17 &sub CODE 18 *glob GLOB SCALAR VALUES 19 FORMAT number, string, ref, glob, undef 20 REFERENCES 21 \ reference $$foo[1] aka $foo->[1] 22 $@%&* dereference $$foo{bar} aka $foo->{bar} 23 [] anon. arrayref ${$$foo[1]}[2] aka $foo->[1]->[2] 24 {} anon. hashref ${$$foo[1]}[2] aka $foo->[1][2] 25 \() list of refs 26 SYNTAX 27 OPERATOR PRECEDENCE foreach (LIST) { } for (a;b;c) { } 28 -> while (e) { } until (e) { } 29 ++ -- if (e) { } elsif (e) { } else { } 30 ** unless (e) { } elsif (e) { } else { } 31 ! ~ \ u+ u- given (e) { when (e) {} default {} } 32 =~ !~ 33 * / % x NUMBERS vs STRINGS FALSE vs TRUE 34 + - . = = undef, "", 0, "0" 35 << >> + . anything else 36 named uops == != eq ne 37 < > <= >= lt gt le ge < > <= >= lt gt le ge 38 == != <=> eq ne cmp ~~ <=> cmp 39 & 40 | ^ REGEX MODIFIERS REGEX METACHARS 41 && /i case insensitive ^ string begin 42 || // /m line based ^$ $ str end (bfr \n) 43 .. ... /s . includes \n + one or more 44 ?: /x /xx ign. wh.space * zero or more 45 = += last goto /p preserve ? zero or one 46 , => /a ASCII /aa safe {3,7} repeat in range 47 list ops /l locale /d dual | alternation 48 not /u Unicode [] character class 49 and /e evaluate /ee rpts \b boundary 50 or xor /g global \z string end 51 /o compile pat once () capture 52 DEBUG (?:p) no capture 53 -MO=Deparse REGEX CHARCLASSES (?#t) comment 54 -MO=Terse . [^\n] (?=p) ZW pos ahead 55 -D## \s whitespace (?!p) ZW neg ahead 56 -d:Trace \w word chars (?<=p) ZW pos behind \K 57 \d digits (?<!p) ZW neg behind 58 CONFIGURATION \pP named property (?>p) no backtrack 59 perl -V:ivsize \h horiz.wh.space (?|p|p)branch reset 60 \R linebreak (?<n>p)named capture 61 \S \W \D \H negate \g{n} ref to named cap 62 \K keep left part 63 FUNCTION RETURN LISTS 64 stat localtime caller SPECIAL VARIABLES 65 0 dev 0 second 0 package $_ default variable 66 1 ino 1 minute 1 filename $0 program name 67 2 mode 2 hour 2 line $/ input separator 68 3 nlink 3 day 3 subroutine $\ output separator 69 4 uid 4 month-1 4 hasargs $| autoflush 70 5 gid 5 year-1900 5 wantarray $! sys/libcall error 71 6 rdev 6 weekday 6 evaltext $@ eval error 72 7 size 7 yearday 7 is_require $$ process ID 73 8 atime 8 is_dst 8 hints $. line number 74 9 mtime 9 bitmask @ARGV command line args 75 10 ctime 10 hinthash @INC include paths 76 11 blksz 3..10 only @_ subroutine args 77 12 blcks with EXPR %ENV environment 78 79=head1 ACKNOWLEDGEMENTS 80 81The first version of this document appeared on Perl Monks, where several 82people had useful suggestions. Thank you, Perl Monks. 83 84A special thanks to Damian Conway, who didn't only suggest important changes, 85but also took the time to count the number of listed features and make a 86Perl 6 version to show that Perl will stay Perl. 87 88=head1 AUTHOR 89 90Juerd Waalboer <#####@juerd.nl>, with the help of many Perl Monks. 91 92=head1 SEE ALSO 93 94=over 4 95 96=item * 97 98L<http://perlmonks.org/?node_id=216602> - the original PM post 99 100=item * 101 102L<http://perlmonks.org/?node_id=238031> - Damian Conway's Perl 6 version 103 104=item * 105 106L<http://juerd.nl/site.plp/perlcheat> - home of the Perl Cheat Sheet 107 108=back 109