in reply to Re^2: Inheritable configuration options.... but with default values?
in thread Inheritable configuration options.... but with default values?

TIMTOWTDI

use strict; use warnings; use Data::Dump qw/pp dd/; package Class1 { use constant cfg => { a => 1 }; }; package Class2 { use parent -norequire, 'Class1'; use constant cfg => { %{__PACKAGE__->SUPER::cfg}, b => 2 }; }; package Class3 { use parent -norequire, 'Class2'; use constant cfg => { %{__PACKAGE__->SUPER::cfg}, c => 3 }; sub meth { warn "a is ",cfg->{a} } }; pp Class1::cfg, Class2::cfg, Class3::cfg ; Class3->meth();
({ a => 1 }, { a => 1, b => 2 }, { a => 1, b => 2, c => 3 })
a is 1 at d:/tmp/pm/class_cfg.pl line 18.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

  • Comment on Re^3: Inheritable configuration options.... but with default values?
  • Download Code