Line 120: |
Line 120: |
| ==== Arrays ==== | | ==== Arrays ==== |
| | | |
− | An array represents a list of values:
| + | An array represents a list of values: |
| | | |
| my @animals = ("camel", "llama", "owl"); | | my @animals = ("camel", "llama", "owl"); |
Line 126: |
Line 126: |
| my @mixed = ("camel", 42, 1.23); | | my @mixed = ("camel", 42, 1.23); |
| | | |
− | Arrays are zero-indexed. Here's how you get at elements in an array:
| + | Arrays are zero-indexed. Here's how you get at elements in an array: |
| | | |
| print $animals[0]; # prints "camel" | | print $animals[0]; # prints "camel" |
| print $animals[1]; # prints "llama" | | print $animals[1]; # prints "llama" |
| | | |
− | The special variable $#array tells you the index of the last element of an array:
| + | The special variable '''$#array''' tells you the index of the last element of an array: |
| | | |
| print $mixed[$#mixed]; # last element, prints 1.23 | | print $mixed[$#mixed]; # last element, prints 1.23 |
| | | |
− | You might be tempted to use $#array + 1 to tell you how many items there are in an array. Don't bother. As it happens, using @array where Perl expects to find a scalar value ("in scalar context") will give you the number of elements in the array:
| + | You might be tempted to use '''$#array + 1''' to tell you how many items there are in an array. Don't bother. As it happens, using '''@array''' where Perl expects to find a scalar value ("in scalar context") will give you the number of elements in the array: |
| | | |
| if (@animals < 5) { ... } | | if (@animals < 5) { ... } |
| | | |
− | The elements we're getting from the array start with a $ because we're getting just a single value out of the array; you ask for a scalar, you get a scalar.
| + | The elements we're getting from the array start with a '''$''' because we're getting just a single value out of the array; you ask for a scalar, you get a scalar. |
| | | |
− | To get multiple values from an array:
| + | To get multiple values from an array: |
| | | |
| @animals[0,1]; # gives ("camel", "llama"); | | @animals[0,1]; # gives ("camel", "llama"); |
Line 147: |
Line 147: |
| @animals[1..$#animals]; # gives all except the first element | | @animals[1..$#animals]; # gives all except the first element |
| | | |
− | This is called an "array slice".
| + | This is called an "array slice". |
| | | |
− | You can do various useful things to lists:
| + | You can do various useful things to lists: |
| | | |
| my @sorted = sort @animals; | | my @sorted = sort @animals; |
| my @backwards = reverse @numbers; | | my @backwards = reverse @numbers; |
| | | |
− | There are a couple of special arrays too, such as @ARGV (the command line arguments to your script) and @_ (the arguments passed to a subroutine). These are documented in perlvar.
| + | There are a couple of special arrays too, such as '''@ARGV''' (the command line arguments to your script) and '''@_''' (the arguments passed to a subroutine). These are documented in [http://perldoc.perl.org/perlvar.html perlvar]. |
| + | |
| ==== Hashes ==== | | ==== Hashes ==== |
| | | |