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