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 ARRAYS HASHES 14 void $scalar whole: @array %hash 15 scalar @array slice: @array[0, 2] @hash{'a', 'b'} 16 list %hash element: $array[0] $hash{'a'} 17 &sub 18 *glob SCALAR VALUES 19 number, string, reference, glob, undef 20 REFERENCES 21 \ references $$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 NUMBERS vs STRINGS LINKS 27 OPERATOR PRECEDENCE = = perl.plover.com 28 -> + . search.cpan.org 29 ++ -- == != eq ne cpan.org 30 ** < > <= >= lt gt le ge pm.org 31 ! ~ \ u+ u- <=> cmp tpj.com 32 =~ !~ perldoc.com 33 * / % x SYNTAX 34 + - . for (LIST) { }, for (a;b;c) { } 35 << >> while ( ) { }, until ( ) { } 36 named uops if ( ) { } elsif ( ) { } else { } 37 < > <= >= lt gt le ge unless ( ) { } elsif ( ) { } else { } 38 == != <=> eq ne cmp for equals foreach (ALWAYS) 39 & 40 | ^ REGEX METACHARS REGEX MODIFIERS 41 && ^ string begin /i case insens. 42 || $ str. end (before \n) /m line based ^$ 43 .. ... + one or more /s . includes \n 44 ?: * zero or more /x ign. wh.space 45 = += -= *= etc. ? zero or one /g global 46 , => {3,7} repeat in range /o cmpl pat. once 47 list ops () capture 48 not (?:) no capture REGEX CHARCLASSES 49 and [] character class . == [^\n] 50 or xor | alternation \s == whitespace 51 \b word boundary \w == word characters 52 \z string end \d == digits 53 DO \S, \W and \D negate 54 use strict; DON'T 55 use warnings; "$foo" LINKS 56 my $var; $$variable_name perl.com 57 open() or die $!; `$userinput` use.perl.org 58 use Modules; /$userinput/ perl.apache.org 59 60 FUNCTION RETURN LISTS 61 stat localtime caller SPECIAL VARIABLES 62 0 dev 0 second 0 package $_ default variable 63 1 ino 1 minute 1 filename $0 program name 64 2 mode 2 hour 2 line $/ input separator 65 3 nlink 3 day 3 subroutine $\ output separator 66 4 uid 4 month-1 4 hasargs $| autoflush 67 5 gid 5 year-1900 5 wantarray $! sys/libcall error 68 6 rdev 6 weekday 6 evaltext $@ eval error 69 7 size 7 yearday 7 is_require $$ process ID 70 8 atime 8 is_dst 8 hints $. line number 71 9 mtime 9 bitmask @ARGV command line args 72 10 ctime just use @INC include paths 73 11 blksz POSIX:: 3..9 only @_ subroutine args 74 12 blcks strftime! with EXPR %ENV environment 75 76=head1 ACKNOWLEDGEMENTS 77 78The first version of this document appeared on Perl Monks, where several 79people had useful suggestions. Thank you, Perl Monks. 80 81A special thanks to Damian Conway, who didn't only suggest important changes, 82but also took the time to count the number of listed features and make a 83Perl 6 version to show that Perl will stay Perl. 84 85=head1 AUTHOR 86 87Juerd Waalboer <#####@juerd.nl>, with the help of many Perl Monks. 88 89=head1 SEE ALSO 90 91 http://perlmonks.org/?node_id=216602 the original PM post 92 http://perlmonks.org/?node_id=238031 Damian Conway's Perl 6 version 93 http://juerd.nl/site.plp/perlcheat home of the Perl Cheat Sheet 94