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/11/03 12:09]
47.79.201.214 old revision restored (2026/09/06 20:00)
notes:perl_cheat_sheet [2026/11/03 15:51] (current)
216.73.217.9 old revision restored (2026/11/02 18:14)
Line 12: Line 12:
   * "use strict;" requires variable declaration   * "use strict;" requires variable declaration
   * Comments start with # (no block comments)   * Comments start with # (no block comments)
-  * Parenthesis are optional unless part of syntax.+ 
 + 
 +===== Scalar Variables ===== 
 + 
 +  * Scalars are numbers or strings (or undefined or references), used interchangeably. 
 +  * Scalar variables start with $ and a letter or underscore, but can contain letters (including unicode), numbers or underscores. 
 +  * Scalar assignment looks like  $a = 3; or $a .= "suffix"; or $a %%**%%= 3; 
 +  * Recommended to use all lowercase variable names with underscores for word separation e.g. $var_name 
 +  * print takes a single scalar or a list of scalars (separated by commas) 
 +  * When a scalar is interpreted as a boolean, the following are //false// : 0, '0', %%''%%, undefined . 
 +  * !! is a handy shortcut to convert any scalar to 0 or 1 (to represent a boolean)
  
 ===== Numbers ===== ===== Numbers =====
Line 18: Line 28:
   * All numbers are stored in the same format e.g.-6.5e24, 037 (octal), 0x2a13b (hex), 0b11010 (binary)   * 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   * Underscores for readability are ignored e.g. 0x1377_0B77
-  * Arithmetic operators are * / + - % (modulus) %%**%% (exponentiation)+  * Arithmetic operators are * / + - % (modulus) ** (exponentiation)
   * Comparison operators are < <= == >= > !=   * Comparison operators are < <= == >= > !=
  
 ===== Strings ===== ===== Strings =====
- 
   * To use unicode in source code - "use utf8;"   * To use unicode in source code - "use utf8;"
   * Single-quoted literals '⅚∞☃☠' can contain any character except single-quote (use \') and backslash (use \\).   * Single-quoted literals '⅚∞☃☠' can contain any character except single-quote (use \') and backslash (use \\).
Line 29: Line 38:
   * To insert a character by code - chr(0x05d0). To convert a character to its code - ord('א')   * 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   *  String comparison operators are lt, le, eq, ge, gt, and ne
- 
-===== Scalar Variables ===== 
- 
-  * Scalars are numbers or strings (or undefined or references), used interchangeably. 
-  * $calar variables start with $ and a letter or underscore, but can contain letters (including unicode), numbers or underscores. 
-  * Scalar assignment looks like  $a = 3; or $a .= "suffix"; or $a %%**%%= 3; 
-  * Recommended to use all lowercase variable names with underscores for word separation e.g. $var_name 
-  * print takes a single scalar or a list of scalars (separated by commas) 
-  * When a scalar is interpreted as a boolean, the following are //false// : 0, '0', %%''%%, undefined . 
-  * !! is a handy shortcut to convert any scalar to 0 or 1 (to represent a boolean) 
-  * Variables have value ''undef'' before being assigned. ''undef'' acts as a 0 or "" as needed, but will throw a warning if printed. 
-  * ''defined()'' checks if a variable has been defined. Can also set a variable to ''undef''. 
- 
-===== Lists and Arrays ===== 
- 
-  * A list is an ordered set of elements (each of which is a scalar value), starting with position 0. 
-  * @rrays are variables that store a list (separate namespace from scalar variables). @x refers to entire array x. 
-  * Undefined arrays start out as ''()'', the empty list and not ''undef''. 
-  * To access an element of an array - ''$myarr[0]'' - ''undef'' if never set. 
-  * Index of last element is in ''$#arr'' 
-  * Negative array indices wrap around (only once) so -1 refers to last element. 
-  * Literal lists - ''('abc','def')'' or ''(1..6)'' (integers 1 to 6) or ''qw(abc def)'' or ''qw#abc def#'' (quoted by whitespace). 
-  * Can assign list values to variables e.g. <code perl>($fred, $barney, $dino) = ("flintstone", "rubble", undef); 
-($fred, $barney) = ($barney, $fred); # swap those values</code> 
-  * ''push'' adds element(s) to **end** of array. ''pop'' 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> 
-  * ''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 context. Scalars are promoted to single-element lists in list context.  
-  * List functions may return different scalars - array variables return number of elements. The ''scalar'' function forces a scalar context e.g. for print function. 
  
 ===== Control Structures ===== ===== Control Structures =====
Line 72: Line 51:
 while ($count < 10) { while ($count < 10) {
     $count += 2;     $count += 2;
-}</code> 
-  * foreach loop <code perl>foreach my $rock (@rocks) { 
-  # modifications to $rock modify the list element 
-  # $_ is used if loop variable is omitted 
 }</code> }</code>
  
Line 82: Line 57:
   * 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. But ''return $a;'' can be used to return immediately. 
-  * 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''. 
-  * 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.1793736555.txt.gz · Last modified: 2026/11/03 12:09 by 47.79.201.214