summaryrefslogtreecommitdiff
path: root/pod
diff options
context:
space:
mode:
authorTels <nospam-abuse@bloodgate.com>2005-12-29 19:01:42 +0100
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2005-12-29 17:32:21 +0000
commit91ee910908135fa548f2069df82ad67a70375e02 (patch)
treed9f0747ab5054ff3dd2c6b278ef50664ff2153e5 /pod
parenteb86f8b30b3c669d547a1d9008e5860ab483ae2d (diff)
downloadperl-91ee910908135fa548f2069df82ad67a70375e02.tar.gz
$a = \$a oddity
Message-Id: <200512291802.00742@bloodgate.com> plus trim some whitespace p4raw-id: //depot/perl@26528
Diffstat (limited to 'pod')
-rw-r--r--pod/perlreftut.pod25
1 files changed, 13 insertions, 12 deletions
diff --git a/pod/perlreftut.pod b/pod/perlreftut.pod
index e55e4d5308..82ad80e3a6 100644
--- a/pod/perlreftut.pod
+++ b/pod/perlreftut.pod
@@ -20,7 +20,7 @@ Fortunately, you only need to know 10% of what's in the main page to get
One problem that came up all the time in Perl 4 was how to represent a
hash whose values were lists. Perl 4 had hashes, of course, but the
-values had to be scalars; they couldn't be lists.
+values had to be scalars; they couldn't be lists.
Why would you want a hash of lists? Let's take a simple example: You
have a file of city and country names, like this:
@@ -101,6 +101,7 @@ reference to that variable.
$aref = \@array; # $aref now holds a reference to @array
$href = \%hash; # $href now holds a reference to %hash
+ $sref = \$scalar; # $sref now holds a reference to $scalar
Once the reference is stored in a variable like $aref or $href, you
can copy it or store it just the same as any other scalar value:
@@ -122,10 +123,10 @@ C<[ ITEMS ]> makes a new, anonymous array, and returns a reference to
that array. C<{ ITEMS }> makes a new, anonymous hash, and returns a
reference to that hash.
- $aref = [ 1, "foo", undef, 13 ];
+ $aref = [ 1, "foo", undef, 13 ];
# $aref now holds a reference to an array
- $href = { APR => 4, AUG => 8 };
+ $href = { APR => 4, AUG => 8 };
# $href now holds a reference to a hash
@@ -267,7 +268,7 @@ two-dimensional array; you can write C<< $a[ROW]->[COLUMN] >> to get
or set the element in any row and any column of the array.
The notation still looks a little cumbersome, so there's one more
-abbreviation:
+abbreviation:
=head2 Arrow Rule
@@ -314,7 +315,7 @@ structure will look like this:
%table
- +-------+---+
+ +-------+---+
| | | +-----------+--------+
|Germany| *---->| Frankfurt | Berlin |
| | | +-----------+--------+
@@ -381,7 +382,7 @@ C<{$table{$country}}>. The C<push> adds a city name to the end of the
referred-to array.
There's one fine point I skipped. Line 5 is unnecessary, and we can
-get rid of it.
+get rid of it.
2 while (<>) {
3 chomp;
@@ -436,11 +437,11 @@ the habit of always including the curly brackets.
This doesn't copy the underlying array:
- $aref2 = $aref1;
+ $aref2 = $aref1;
-You get two references to the same array. If you modify
+You get two references to the same array. If you modify
C<< $aref1->[23] >> and then look at
-C<< $aref2->[23] >> you'll see the change.
+C<< $aref2->[23] >> you'll see the change.
To copy the array, use
@@ -454,14 +455,14 @@ Similarly, to copy an anonymous hash, you can use
$href2 = {%{$href1}};
-=item *
+=item *
To see if a variable contains a reference, use the C<ref> function. It
returns true if its argument is a reference. Actually it's a little
better than that: It returns C<HASH> for hash references and C<ARRAY>
for array references.
-=item *
+=item *
If you try to use a reference like a string, you get strings like
@@ -503,7 +504,7 @@ to do with references.
Author: Mark Jason Dominus, Plover Systems (C<mjd-perl-ref+@plover.com>)
This article originally appeared in I<The Perl Journal>
-( http://www.tpj.com/ ) volume 3, #2. Reprinted with permission.
+( http://www.tpj.com/ ) volume 3, #2. Reprinted with permission.
The original title was I<Understand References Today>.