# info > Moose::Cookbook::Basics::DateTime_ExtendingNonMooseParent

## [Moose::Cookbook](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3ACookbook/markdown):[Moose::Cookbook::Basics](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3ACookbook%3A%3ABasics/markdown)::[DateTimeExtendingNonMooseParent(3pm)](https://www.chedong.com/phpMan.php/man/DateTimeExtendingNonMooseParent/3pm/markdown)

## NAME
       [Moose::Cookbook::Basics::DateTime_ExtendingNonMooseParent](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3ACookbook%3A%3ABasics%3A%3ADateTimeExtendingNonMooseParent/markdown) - Extending a
       non-Moose parent class

## VERSION
       version 2.2200

## SYNOPSIS
         package [My::DateTime](https://www.chedong.com/phpMan.php/perldoc/My%3A%3ADateTime/markdown);

         use Moose;
         use [MooseX::NonMoose](https://www.chedong.com/phpMan.php/perldoc/MooseX%3A%3ANonMoose/markdown);
         use [DateTime::Calendar::Mayan](https://www.chedong.com/phpMan.php/perldoc/DateTime%3A%3ACalendar%3A%3AMayan/markdown);
         extends qw( DateTime );

         has 'mayan_date' => (
             is        => 'ro',
             isa       => '[DateTime::Calendar::Mayan](https://www.chedong.com/phpMan.php/perldoc/DateTime%3A%3ACalendar%3A%3AMayan/markdown)',
             init_arg  => undef,
             lazy      => 1,
             builder   => '_build_mayan_date',
             clearer   => '_clear_mayan_date',
             predicate => 'has_mayan_date',
         );

         after 'set' => sub {
             $_[0]->_clear_mayan_date;
         };

         sub _build_mayan_date {
             [DateTime::Calendar::Mayan](https://www.chedong.com/phpMan.php/perldoc/DateTime%3A%3ACalendar%3A%3AMayan/markdown)->from_object( object => $_[0] );
         }

## DESCRIPTION
       This recipe demonstrates how to use Moose to subclass a parent which is
       not Moose based. This recipe only works if the parent class uses a
       blessed hash reference for object instances. If your parent is doing
       something funkier, you should check out [MooseX::NonMoose::InsideOut](https://www.chedong.com/phpMan.php/perldoc/MooseX%3A%3ANonMoose%3A%3AInsideOut/markdown) and
       [MooseX::InsideOut](https://www.chedong.com/phpMan.php/perldoc/MooseX%3A%3AInsideOut/markdown).

       The meat of this recipe is contained in [MooseX::NonMoose](https://www.chedong.com/phpMan.php/perldoc/MooseX%3A%3ANonMoose/markdown), which does
       all the grunt work for you.

## AUTHORS
       o   Stevan Little <<stevan@cpan.org>>

       o   Dave Rolsky <<autarch@urth.org>>

       o   Jesse Luehrs <<doy@cpan.org>>

       o   Shawn M Moore <<sartak@cpan.org>>

       o    ' (Yuval Kogman) <<nothingmuch@woobling.org>>

       o   Karen Etheridge <<ether@cpan.org>>

       o   Florian Ragwitz <<rafl@debian.org>>

       o   Hans Dieter Pearcey <<hdp@cpan.org>>

       o   Chris Prather <<chris@prather.org>>

       o   Matt S Trout <<mstrout@cpan.org>>

## COPYRIGHT AND LICENSE
       This software is copyright (c) 2006 by Infinity Interactive, Inc.

       This is free software; you can redistribute it and/or modify it under
       the same terms as the Perl 5 programming language system itself.

perl v5.34.0    [Moose::Cookbook::Basics](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3ACookbook%3A%3ABasics/markdown)::[DateTime_ExtendingNonMooseParent(3pm)](https://www.chedong.com/phpMan.php/man/DateTimeExtendingNonMooseParent/3pm/markdown)
