package App::Ack::Repository; use App::Ack::Resource; use warnings; use strict; sub FAIL { require Carp; Carp::confess( 'Must be overloaded' ); } =head1 METHODS =head2 CLASS->new( $filename ) Creates an instance of the repository. =cut sub new { FAIL(); } =head2 next_resource Returns a resource object for the next resource in the repository. =cut sub next_resource { FAIL(); } =head2 close Closes the repository. If this repository were, say, an Excel workbook, you'd probably close the file. If it were a database, you'd close the database connection. =cut sub close { FAIL(); } 1;