On Mon, 2008-08-11 at 14:52 +0100, Dermot wrote:
> Hi,
> 
> I am trying to make hash that refers to itself like this
> 
> my %_HASH;
> %_HASH = (
>    typeOne => {
>          root => '/path/to/typeOne',
>          logfile => $_HASH{typeOne}->{root}.'/logone.log';
>   },
>    typeTwo => {
>         root => '/path/to/typeTwo',
>         logfile => $_HASH{typeTwo}->{root}.'/logtwo.log';
>   }
> );
> 
> 
> But nothing is initialised at this point so $_HASH{typeOne}->{root} is
> an uninitialized value when creating and logfile key.
> 
> Is there a way around this?
> TiA,
> Dp.
> 

Yes, you have to do it after-the-fact, so to speak.

#!/usr/bin/perl

use strict;
use warnings;
use utf8;

use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Indent   = 1;
$Data::Dumper::Maxdepth = 0;

my %_HASH;
%_HASH = (
   typeOne => {
         root => '/path/to/typeOne',
  },
   typeTwo => {
        root => '/path/to/typeTwo',
  }
);
$_HASH{typeOne}{logfile} = $_HASH{typeOne}{root} . '/logone.log';
$_HASH{typeTwo}{logfile} = $_HASH{typeTwo}{root} . '/logtwo.log';

print Dumper \%_HASH;

__END__


-- 
Just my 0.00000002 million dollars worth,
  Shawn

"Where there's duct tape, there's hope."

"Perl is the duct tape of the Internet."
        Hassan Schroeder, Sun's first webmaster


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to