Perl is a highly capable, feature-rich programming language with over 25 years of development. These notes follow the path of the Learning Perl book.
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 splice @arr, start, len, @newelems
sort and reverse functions return the modified list (can be saved to original array variable).scalar function forces a scalar context e.g. for print function.if ($a == $b) { a = 0; } elsif ($a > $b) { a = 1; } else { a = -1; }
$count=0; while ($count < 10) { $count += 2; }
foreach $rock (@rocks) { # modifications to $rock modify the list element # $_ is used if loop variable is omitted }
$line = <STDIN>;chomp removes a newline e.g. chomp($line=<STDIN>);chmop(@lines = <STDIN>);