in reply to subclassing: how to design my module

Engine is a stop word :) its like using "Wheel" or program/module...

Subclassing not required or beneficial as there are only 2 things that read event logs, win32api and win32exe

Win32::EventsFilter Win32::EventsFilter::EventLog Win32::EventsFilter::Wevtutil Win32::Events Win32::Events::EventLog Win32::Events::Wevtutil Win32::Evt Win32::Evt::EventLog Win32::Evt::Wevtutil sub Win32::Evt::start { ... } sub Win32::Evt::EventLog::Last { ... } sub Win32::Evt::Wevtutil::Last { ... } sub Win32::Evt::EventLog::GetNth { ... } sub Win32::Evt::Wevtutil::GetNth { ... }

Ok, if you really wanna gotta subclass, do it without inheritance, and with style (the name not the noises)

package Win32::Evt::Darllenydd; use Moo::Role; requires 'Last', 'GetNth', ...; no Moo::Role; package Win32::Evt::EventLog; use Moo; with 'Win32::Evt::Darllenydd'; sub Win32::Evt::EventLog::Last { ... } sub Win32::Evt::EventLog::GetNth { ... } no Moo; ...

ok ok, if you really really want inheritance

use parent 'Win32::Evt::Darllenydd'; ... package Win32::Evt::Darllenydd; use Carp(); sub Last { Carp::croak( "Last unimplemented" ); } sub GetNth{ Carp::croak( "GetNth unimplemented" ); } ...

 

Hmm vanity .... delicious

Win32::DiEvt Win32::DiEvt::EventLog Win32::DiEvt::Wevtutil