You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.0 KiB

package Subtitle::BASE;
use strict;
use warnings;
use utf8;
sub log {
my ($self, $level, $msg) = @_;
if ($level eq 'error') {
push @{ $self->{log} }, "E: $msg";
} elsif ($level eq 'warn') {
push @{ $self->{log} }, "W: $msg";
} elsif ($level eq 'info') {
push @{ $self->{log} }, "I: $msg";
} elsif ($level eq 'debug') {
push @{ $self->{log} }, "D: $msg" if $self->{debug};
} else {
warn "Unknown loglevel $level of $msg\n";
}
return 1;
}
sub parse { return "Unimplemented by subclass"; }
sub build { return "Unimplemented by subclass"; }
1;
=pod
=head1 NAME
Subtitle::BASE -- base class of subtitle file
=head1 SYNOPSYS
use base 'Subtitle::BASE';
This module should not be used directly.
=head1 METHODS
=head2 C<log>
$obj->log(warn => "something happens");
Add some info to processing log.
Takes two args: message level (debug/info/warn/error) and message text
Collected messages can be accessed like this:
my @log = @{ $obj->{log} };
=head C<build>
=head C<parse>
Stubs for subclasses
=cut