Site Tools


Hotfix release available: 2026-07-14c "Mort". upgrade now! [57.3] (what's this?)
Hotfix release available: 2026-07-14b "Mort". upgrade now! [57.2] (what's this?)
Hotfix release available: 2026-07-14a "Mort". upgrade now! [57.1] (what's this?)
New release available: 2026-07-14 "Mort". upgrade now! [57] (what's this?)
Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
notes:perl_cheat_sheet

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
notes:perl_cheat_sheet [2026/09/13 11:24]
187.126.111.163 old revision restored (2026/08/03 07:47)
notes:perl_cheat_sheet [2026/09/14 05:19] (current)
185.11.17.58 old revision restored (2026/08/03 08:07)
Line 13: Line 13:
   * Comments start with # (no block comments)   * Comments start with # (no block comments)
   * Parenthesis are optional unless part of syntax.   * Parenthesis are optional unless part of syntax.
 +  * ''@ARGV'' contains arguments, $0 contains program name.
  
 ===== Numbers ===== ===== Numbers =====
Line 82: Line 83:
   * Read a line of input - ''$line = <STDIN>;''   * Read a line of input - ''$line = <STDIN>;''
   * ''chomp'' removes a newline e.g. ''chomp($line=<STDIN>);''   * ''chomp'' removes a newline e.g. ''chomp($line=<STDIN>);''
-  * Assigning <STDIN> to a list reads all input up till EOF e.g. <code perl> chmop(@lines = <STDIN>);</code> +  * Assigning <STDIN> to a list reads all input up till EOF e.g. <code perl> chomp(@lines = <STDIN>);</code> 
 +  * Loop over input ($_ can only be used in this specific case) <code perl>while (<STDIN>) { 
 +    print "I saw $_"; 
 +}</code> 
 +  * ''foreach'' can also be used but uses more memory since it reads all input into memory first. 
 +  * ''<>'' iterates over all files in @ARGV (or STDIN if no args) like e.g. cat/sed/awk. <code perl>while (<>) { 
 +    chomp; 
 +    print "It was $_ that I saw!\n"; 
 +}</code>
 ===== User Subroutines ===== ===== User Subroutines =====
  
Line 91: Line 99:
   $m + $n;   $m + $n;
 } </code> } </code>
-  * The value of the last expression evaluated is returned.+  * The value of the last expression evaluated is returned. But ''return $a;'' can be used to return immediately. 
 +  * A list can be returned if the subroutine is called in a list context (''wantarray'' can be used to detect list or scalar context).
   * Arguments are in the list @_ . If ''&mysub;'' is used, the parent's argument list is inherited.   * Arguments are in the list @_ . If ''&mysub;'' is used, the parent's argument list is inherited.
   * Lexical scoped variables can be used in any block by prefixing with ''my''.   * Lexical scoped variables can be used in any block by prefixing with ''my''.
 +  * In Perl 5.10 and up ''state $x;'' can be used to declare a private variable that keep state between calls.
 +  * Ampersand is optional if subroutine has previously been declared or if parenthesis are used. Ampersand is not optional if built-in subroutine is being overridden.
notes/perl_cheat_sheet.1789323868.txt.gz · Last modified: 2026/09/13 11:24 by 187.126.111.163