#!/usr/bin/perl use strict; use warnings; use Test::More tests => 2; use Test::Exception; use MooseX::Declare; class Document::Page { has 'body' => ( is => 'rw', isa => 'Str', default => '', ); method create { $self->open_page; inner; $self->close_page; } method append_body ($appendage) { $self->body($self->body . $appendage); } method open_page { $self->append_body('') } method close_page { $self->append_body('') } } class Document::PageWithHeadersAndFooters extends Document::Page { augment create { $self->create_header; inner; $self->create_footer; } method create_header { $self->append_body('
') } method create_footer { $self->append_body('