On Mon, Nov 10, 2008 at 3:52 PM, Travis Thornhill <[EMAIL PROTECTED]
> wrote:

> Is there such a thing?
>
> I'm trying to take a HoH and make a reference to a sub-part of the hash.
>
> This doesn't work:
>
> my %sub_hash = $main_hash{'sub_hash'};
>
> I get the following error:
> Reference found where even-sized list expected at ./my_buggy_program line
> 30.
>
> Any quick tips on how to reference and assign this sub-hash?
>
> Thanks,
> - Travis
>
>
>


Hi Travis,

The problem you are facing is that $main_hash{'sub_hash'} does not return a
hash at all but a reference. Which is exactly what perl is telling you. You
can simply tell perl that it should dereference the reference to a hash, you
could do that like this:

#!/usr/bin/perl

use warnings;
use strict;
use Data::Dumper;

my %hash = ( 1 => 'one',
             2 => 'two',
             3 => { 3.1 => 'three point one',
                    3.2 => 'three point two' },
             4 => 'four' );
my %hash_slice = %{$hash{3}};
print Dumper %hash_slice;
Reagrds,

Rob

Reply via email to