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/15 05:45]
163.7.15.111 old revision restored (2013/08/31 23:24)
notes:perl_cheat_sheet [2026/09/16 14:25] (current)
216.73.216.94 old revision restored (2026/09/15 14:12)
Line 14: Line 14:
   * Parenthesis are optional unless part of syntax.   * Parenthesis are optional unless part of syntax.
  
 +===== Numbers =====
 +
 +  * All numbers are stored in the same format e.g.-6.5e24, 037 (octal), 0x2a13b (hex), 0b11010 (binary)
 +  * Underscores for readability are ignored e.g. 0x1377_0B77
 +  * Arithmetic operators are * / + - % (modulus) %%**%% (exponentiation)
 +  * Comparison operators are < <= == >= > !=
 +
 +===== Strings =====
 +
 +  * To use unicode in source code - "use utf8;"
 +  * Single-quoted literals '⅚∞☃☠' can contain any character except single-quote (use \') and backslash (use \\).
 +  * Double-quoted strings can contain control-characters starting with a backslash and are variable interpolated e/g/ "${var}s $var\n".
 +  * . is for concatenation, x for string repetition.
 +  * To insert a character by code - chr(0x05d0). To convert a character to its code - ord('א')
 +  *  String comparison operators are lt, le, eq, ge, gt, and ne
  
 ===== Scalar Variables ===== ===== Scalar Variables =====
Line 41: Line 56:
   * ''unshift'' adds element(s) to **start** of array. ''shift'' removes a single element and returns it.   * ''unshift'' adds element(s) to **start** of array. ''shift'' removes a single element and returns it.
   * ''splice'' removes elements from middle of array, returns them and optionally replaces them <code perl>splice @arr, start, len, @newelems</code>   * ''splice'' removes elements from middle of array, returns them and optionally replaces them <code perl>splice @arr, start, len, @newelems</code>
-===== Numbers ===== +  ''sort'' and ''reverse'' functions return the modified list (can be saved to original array variable). 
- +  * Expressions parsed in either a scalar context or a list contextScalars are promoted to single-element lists in list context.  
-  All numbers are stored in the same format e.g.-6.5e24, 037 (octal), 0x2a13b (hex), 0b11010 (binary+  * List functions may return different scalars array variables return number of elements. The ''scalar'' function forces scalar context e.g. for print function.
-  * Underscores for readability are ignored e.g. 0x1377_0B77 +
-  * Arithmetic operators are * / + % (modulus) ** (exponentiation) +
-  * Comparison operators are < <= == >= > != +
- +
-===== Strings ===== +
-  * To use unicode in source code - "use utf8;" +
-  * Single-quoted literals '⅚∞☃☠can contain any character except single-quote (use \') and backslash (use \\). +
-  * Double-quoted strings can contain control-characters starting with backslash and are variable interpolated e/g/ "${var}s $var\n". +
-  * . is for concatenation, x for string repetition. +
-  * To insert a character by code - chr(0x05d0). To convert a character to its code - ord('א'+
-  *  String comparison operators are lt, le, eq, ge, gt, and ne+
  
 ===== Control Structures ===== ===== Control Structures =====
Line 70: Line 74:
 }</code> }</code>
   * foreach loop <code perl>foreach $rock (@rocks) {   * foreach loop <code perl>foreach $rock (@rocks) {
-  # modifications to $rock modify the list element +  # modifications to $rock modify the list element 
 +  # $_ is used if loop variable is omitted
 }</code> }</code>
  
Line 77: Line 82:
   * 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>
 +
 +===== User Subroutines =====
  
 +  * Subroutines are in their own namespace and are typically called using ''&mysub'' (sometimes the ampersand can be omitted).
 +  * Subroutines can be defined anywhere e.g. <code perl> sub mysub {
 +  my($m, $n) = @_
 +  $m + $n;
 +} </code>
 +  * The value of the last expression evaluated is returned.
 +  * 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''.
notes/perl_cheat_sheet.1789476333.txt.gz · Last modified: 2026/09/15 05:45 by 163.7.15.111