|
|
|
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
|