# PODNAME: Moose::Cookbook::Basics::Document_AugmentAndInner # ABSTRACT: The augment modifier, which turns normal method overriding "inside-out" __END__ =pod =encoding UTF-8 =head1 NAME Moose::Cookbook::Basics::Document_AugmentAndInner - The augment modifier, which turns normal method overriding "inside-out" =head1 VERSION version 2.2207 =head1 SYNOPSIS package Document::Page; use Moose; has 'body' => ( is => 'rw', isa => 'Str', default => sub {''} ); sub create { my $self = shift; $self->open_page; inner(); $self->close_page; } sub append_body { my ( $self, $appendage ) = @_; $self->body( $self->body . $appendage ); } sub open_page { (shift)->append_body('') } sub close_page { (shift)->append_body('') } package Document::PageWithHeadersAndFooters; use Moose; extends 'Document::Page'; augment 'create' => sub { my $self = shift; $self->create_header; inner(); $self->create_footer; }; sub create_header { (shift)->append_body('
') } sub create_footer { (shift)->append_body('