diff --git a/perl.html.markdown b/perl.html.markdown
index 908f300b..a29fdf1f 100644
--- a/perl.html.markdown
+++ b/perl.html.markdown
@@ -51,6 +51,13 @@ my @mixed = ("camel", 42, 1.23);
# indicate one value will be returned.
my $second = $animals[1];
+# The size of an array is retrieved by accessing the array in a scalar
+# context, such as assigning it to a scalar variable or using the
+# "scalar" operator.
+
+my $num_animals = @animals;
+print "Number of numbers: ", scalar(@numbers), "\n";
+
## Hashes
# A hash represents a set of key/value pairs:
@@ -67,6 +74,11 @@ my %fruit_color = (
# Hash elements are accessed using curly braces, again with the $ sigil.
my $color = $fruit_color{apple};
+# All of the keys or values that exist in a hash can be accessed using
+# the "keys" and "values" functions.
+my @fruits = keys %fruit_color;
+my @colors = values %fruit_color;
+
# Scalars, arrays and hashes are documented more fully in perldata.
# (perldoc perldata).
@@ -144,6 +156,12 @@ for (@elements) {
print;
}
+# iterating through a hash (for and foreach are equivalent)
+
+foreach my $key (keys %hash) {
+ print $key, ': ', $hash{$key}, "\n";
+}
+
# the Perlish post-condition way again
print for @elements;