Modules

  • ABCDE
  • FGHIL
  • MNOPS
  • TUX

Tools

perlcheat

Perl 5 version 8.8 documentation
Recently read

perlcheat

NAME

perlcheat - Perl 5 Cheat Sheet

DESCRIPTION

This 'cheat sheet' is a handy reference, meant for beginning Perl programmers. Not everything is mentioned, but 194 features may already be overwhelming.

The sheet

  1. CONTEXTS SIGILS ARRAYS HASHES
  2. void $scalar whole: @array %hash
  3. scalar @array slice: @array[0, 2] @hash{'a', 'b'}
  4. list %hash element: $array[0] $hash{'a'}
  5. &sub
  6. *glob SCALAR VALUES
  7. number, string, reference, glob, undef
  8. REFERENCES
  9. \ references $$foo[1] aka $foo->[1]
  10. $@%&* dereference $$foo{bar} aka $foo->{bar}
  11. [] anon. arrayref ${$$foo[1]}[2] aka $foo->[1]->[2]
  12. {} anon. hashref ${$$foo[1]}[2] aka $foo->[1][2]
  13. \() list of refs
  14. NUMBERS vs STRINGS LINKS
  15. OPERATOR PRECEDENCE = = perl.plover.com
  16. -> + . search.cpan.org
  17. ++ -- == != eq ne cpan.org
  18. ** < > <= >= lt gt le ge pm.org
  19. ! ~ \ u+ u- <=> cmp tpj.com
  20. =~ !~ perldoc.com
  21. * / % x SYNTAX
  22. + - . for (LIST) { }, for (a;b;c) { }
  23. << >> while ( ) { }, until ( ) { }
  24. named uops if ( ) { } elsif ( ) { } else { }
  25. < > <= >= lt gt le ge unless ( ) { } elsif ( ) { } else { }
  26. == != <=> eq ne cmp for equals foreach (ALWAYS)
  27. &
  28. | ^ REGEX METACHARS REGEX MODIFIERS
  29. && ^ string begin /i case insens.
  30. || $ str. end (before \n) /m line based ^$
  31. .. ... + one or more /s . includes \n
  32. ?: * zero or more /x ign. wh.space
  33. = += -= *= etc. ? zero or one /g global
  34. , => {3,7} repeat in range
  35. list ops () capture REGEX CHARCLASSES
  36. not (?:) no capture . == [^\n]
  37. and [] character class \s == [\x20\f\t\r\n]
  38. or xor | alternation \w == [A-Za-z0-9_]
  39. \b word boundary \d == [0-9]
  40. \z string end \S, \W and \D negate
  41. DO
  42. use strict; DON'T LINKS
  43. use warnings; "$foo" perl.com
  44. my $var; $$variable_name perlmonks.org
  45. open() or die $!; `$userinput` use.perl.org
  46. use Modules; /$userinput/ perl.apache.org
  47. parrotcode.org
  48. FUNCTION RETURN LISTS
  49. stat localtime caller SPECIAL VARIABLES
  50. 0 dev 0 second 0 package $_ default variable
  51. 1 ino 1 minute 1 filename $0 program name
  52. 2 mode 2 hour 2 line $/ input separator
  53. 3 nlink 3 day 3 subroutine $\ output separator
  54. 4 uid 4 month-1 4 hasargs $| autoflush
  55. 5 gid 5 year-1900 5 wantarray $! sys/libcall error
  56. 6 rdev 6 weekday 6 evaltext $@ eval error
  57. 7 size 7 yearday 7 is_require $$ process ID
  58. 8 atime 8 is_dst 8 hints $. line number
  59. 9 mtime 9 bitmask @ARGV command line args
  60. 10 ctime just use @INC include paths
  61. 11 blksz POSIX:: 3..9 only @_ subroutine args
  62. 12 blcks strftime! with EXPR %ENV environment

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.

AUTHOR

Juerd Waalboer <juerd@cpan.org>, with the help of many Perl Monks.

SEE ALSO

  1. http://perlmonks.org/?node_id=216602 the original PM post
  2. http://perlmonks.org/?node_id=238031 Damian Conway's Perl 6 version
  3. http://juerd.nl/site.plp/perlcheat home of the Perl Cheat Sheet