This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
notes:perl_cheat_sheet [2026/09/15 10:15] 216.73.216.243 old revision restored (2026/09/11 05:58) |
notes:perl_cheat_sheet [2026/09/16 14:25] (current) 216.73.216.94 old revision restored (2026/09/15 14:12) |
||
|---|---|---|---|
| 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. | ||
| - | * '' | ||
| - | * '' | ||
| ===== Numbers ===== | ===== Numbers ===== | ||
| Line 61: | Line 59: | ||
| * Expressions parsed in either a scalar context or a list context. Scalars are promoted to single-element lists in list context. | * 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 '' | * List functions may return different scalars - array variables return number of elements. The '' | ||
| - | |||
| - | ===== Hashes ===== | ||
| - | |||
| - | * A hash is a list indexed by a string (key) - a collection of key-value pairs. '' | ||
| - | * Uses scalable, efficient algorithms. Used to be called associative arrays. | ||
| - | * '' | ||
| - | * Assigning a hash to an array unwinds (flattens) it. | ||
| - | * To initialize a hash :<code perl> | ||
| - | %some_hash = ( ' | ||
| - | * When using a big arrow (a fat-comma) or when accessing a value, simple keys don't have to be quoted (barewords) e.g. <code perl> | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * To iterate over hash : <code perl> | ||
| - | print "$key => $value\n"; | ||
| - | print "$key => $hash{$key}\n"; | ||
| - | * %ENV hash holds environment variables. | ||
| ===== Control Structures ===== | ===== Control Structures ===== | ||
| Line 92: | Line 73: | ||
| $count += 2; | $count += 2; | ||
| }</ | }</ | ||
| - | * foreach loop <code perl> | + | * foreach loop <code perl> |
| # modifications to $rock modify the list element | # modifications to $rock modify the list element | ||
| # $_ is used if loop variable is omitted | # $_ is used if loop variable is omitted | ||
| Line 101: | Line 82: | ||
| * Read a line of input - '' | * Read a line of input - '' | ||
| * '' | * '' | ||
| - | * Assigning < | + | * Assigning < |
| - | * Loop over input ($_ can only be used in this specific case) <code perl> | + | |
| - | print "I saw $_"; | + | |
| - | }</ | + | |
| - | * '' | + | |
| - | * ''<>'' | + | |
| - | chomp; | + | |
| - | print LOGFILE "It was $_ that I saw!\n"; | + | |
| - | }</ | + | |
| - | * '' | + | |
| - | print sort <>; | + | |
| - | * C-like printf function %g for number auto-format, | + | |
| - | my $format = "The items are: | + | |
| - | printf $format, @items; | + | |
| - | printf "The items are: | + | |
| - | </ | + | |
| - | * Filehandles can be barewords (upper-cased) or variables. Special filehandles are : STDIN, STDOUT, STDERR, DATA, ARGV, and ARGVOUT .<code perl> | + | |
| - | open BEDROCK, '> | + | |
| - | open LOG, '>>: | + | |
| - | open my $bedrock, '>: | + | |
| - | binmode STDOUT, ': | + | |
| - | * '' | + | |
| ===== User Subroutines ===== | ===== User Subroutines ===== | ||
| Line 130: | Line 91: | ||
| $m + $n; | $m + $n; | ||
| } </ | } </ | ||
| - | * The value of the last expression evaluated is returned. But '' | + | * The value of the last expression evaluated is returned. |
| - | * A list can be returned if the subroutine is called in a list context ('' | + | |
| * Arguments are in the list @_ . If ''& | * Arguments are in the list @_ . If ''& | ||
| * Lexical scoped variables can be used in any block by prefixing with '' | * Lexical scoped variables can be used in any block by prefixing with '' | ||
| - | * In Perl 5.10 and up '' | ||
| - | * 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. | ||