[sf-perl] Pushing and Popping an array on the heap
david wright
david_v_wright at yahoo.com
Tue May 27 12:02:37 PDT 2008
> I think the next structure fits better to your goal:
>
> push @{$a1ref->{Washington}}, ("Seattle",
> "Olympia", "Tacoma");
> print $a1ref->{Washington}[0] . "\n";
I agree with Sergey,
push @{$a1ref->{Washington}}, ("Seattle", "Olympia", "Tacoma");
warn Dumper $a1ref;
$VAR1 = {
'Washington' => [
'Seattle',
'Olympia',
'Tacoma'
]
};
There are a few indispensable resources I use for dealing with perl data structures:
perldoc perldsc (perldsc - Perl Data Structures Cookbook)
and the module (in perl base) Data::Dumper (an example as used above)
+David
--- On Tue, 5/27/08, Sergey Fetisov <sergey.fetisov at ask.com> wrote:
> From: Sergey Fetisov <sergey.fetisov at ask.com>
> Subject: Re: [sf-perl] Pushing and Popping an array on the heap
> To: "San Francisco Perl Mongers User Group" <sanfrancisco-pm at pm.org>
> Date: Tuesday, May 27, 2008, 2:32 PM
> Hi,
>
> The next works too:
> push @$a1ref, ["Seattle", "Olympia",
> "Tacoma"];
> print $a1ref->[0][0] . "\n";
>
> But $alref->[0] is array and you can not push a scalar
> (e.g.
> "Washington") there.
> I think the next structure fits better to your goal:
>
> push @{$a1ref->{Washington}}, ("Seattle",
> "Olympia", "Tacoma");
> print $a1ref->{Washington}[0] . "\n";
>
>
> -- Sergey
>
> ________________________________
>
> From: sanfrancisco-pm-bounces+sergey.fetisov=ask.com at pm.org
> [mailto:sanfrancisco-pm-bounces+sergey.fetisov=ask.com at pm.org]
> On Behalf
> Of Dan Boger
> Sent: Tuesday, May 27, 2008 10:11 AM
> To: San Francisco Perl Mongers User Group
> Subject: Re: [sf-perl] Pushing and Popping an array on the
> heap
>
>
>
> On Tue, May 27, 2008 at 9:52 AM, Neil Heller
> <nheller at silcon.com
> <blocked::mailto:nheller at silcon.com> > wrote:
>
>
> The problem is that I don't have a clue (nor am I able
> to find)
> how to use (or the syntax involved to) "push" (or
> unshift) and "pop" (or
> shift) values into and out of this described data
> structure.
>
> I think (but can't be sure since you didn't post
> what you tried) that
> you're running into a precedence issue. If you type:
>
> push $a1ref[0]->[0], "value";
>
> Push will complain since it wants an array as it's
> first argument, not
> an array reference. The way to get around it is to
> dereference the
> array:
>
> push @{$a1ref[0]->[0]}, "value";
>
> Same will work for any of the array manipulation commands
> (shift, pop,
> unshift, splice, etc).
>
> HTH!
>
> Dan
>
> --
> Dan Boger
>
> ________________________________
>
> From: sanfrancisco-pm-bounces+sergey.fetisov=ask.com at pm.org
> [mailto:sanfrancisco-pm-bounces+sergey.fetisov=ask.com at pm.org]
> On Behalf
> Of Neil Heller
> Sent: Tuesday, May 27, 2008 9:53 AM
> To: 'San Francisco Perl Mongers User Group'
> Subject: [sf-perl] Pushing and Popping an array on the heap
>
>
>
> Some of the advantages of using an array are the push and
> pop functions.
>
>
>
> The following instantiates a reference on the stack that
> points to an
> (anonymous) empty array on the heap:
>
>
>
> What I would like to do is:
>
>
>
> 1. Instantiate a reference on the stack that points
> to an empty,
> anonymous array on the heap.
>
> 2. "push" a reference ($a2ref) into the
> original anonymous array
> that points to a secondary, anonymous array
>
> 3. "push" a series of references into the
> array referenced by
> $a2ref
>
>
>
> An example might look something like the following:
>
>
>
> $a1ref = [undef];
>
> (The values to be pushed are as follows);
>
>
>
> Washington $a1ref->[0]
>
> Seattle $a1ref[0]->[0]
>
> Olympia $a1ref[0]->[1]
>
> Tacoma $a1ref[0]->[2]
>
>
>
> Oregon $a1ref->[1]
>
> Portland
>
> Salem
>
> Beaverton
>
>
>
>
>
> Finally, I would like to pop (or shift) values from $a1ref
> followed by
> the individual members of the secondary array (such as
> $a1ref[0]->[0]).
>
>
>
> The problem is that I don't have a clue (nor am I able
> to find) how to
> use (or the syntax involved to) "push" (or
> unshift) and "pop" (or shift)
> values into and out of this described data structure.
>
>
>
> I appreciate any help I can get.
>
>
>
> Neil Heller_______________________________________________
> SanFrancisco-pm mailing list
> SanFrancisco-pm at pm.org
> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm
More information about the SanFrancisco-pm
mailing list