Alex 'AdUser' Z
9 years ago
3 changed files with 91 additions and 12 deletions
@ -0,0 +1,69 @@ |
|||||||
|
package Subtitle::Utils; |
||||||
|
|
||||||
|
use strict; |
||||||
|
use warnings; |
||||||
|
|
||||||
|
use base 'Exporter'; |
||||||
|
|
||||||
|
our @EXPORT_OK = qw( |
||||||
|
chomp_all strip_bom trim |
||||||
|
); |
||||||
|
|
||||||
|
our %EXPORT_TAGS = ( |
||||||
|
string => [qw(chomp_all strip_bom trim)], |
||||||
|
); |
||||||
|
|
||||||
|
|
||||||
|
## string sunctions |
||||||
|
|
||||||
|
sub chomp_all { |
||||||
|
return unless @_; |
||||||
|
return $_ =~ s/[\r\n]+$//o for @_; |
||||||
|
} |
||||||
|
|
||||||
|
sub strip_bom { |
||||||
|
return unless @_; |
||||||
|
return $_[0] =~ s/^\xEF\xBB\xBF//o; |
||||||
|
} |
||||||
|
|
||||||
|
sub trim { |
||||||
|
return unless @_; |
||||||
|
$_ =~ s/(^\s+|\s+$)//go for @_; |
||||||
|
} |
||||||
|
|
||||||
|
1; |
||||||
|
|
||||||
|
=pod |
||||||
|
|
||||||
|
=head1 NAME |
||||||
|
|
||||||
|
Subtitle::Utils -- usefull generic routines |
||||||
|
|
||||||
|
=head1 SYNOPSYS |
||||||
|
|
||||||
|
use Subtitle::Utils qw(:all); |
||||||
|
|
||||||
|
=head1 FUNCTIONS / STRINGS |
||||||
|
|
||||||
|
use Subtitle::Utils qw(:string); |
||||||
|
|
||||||
|
=head2 C<chomp_all> |
||||||
|
|
||||||
|
chomp($line); |
||||||
|
chomp($line1, $line2); |
||||||
|
|
||||||
|
In-place strips newlines (CR/LF) from line. |
||||||
|
|
||||||
|
=head2 C<strip_bom> |
||||||
|
|
||||||
|
strip_bom($line); |
||||||
|
|
||||||
|
In-place strips Unicode's BOM (Byte Order Mark) from line. |
||||||
|
|
||||||
|
=head2 C<trim> |
||||||
|
|
||||||
|
trim($line); |
||||||
|
|
||||||
|
In-place strips leading and trailing spaces from the given string |
||||||
|
|
||||||
|
=cut |
@ -0,0 +1,22 @@ |
|||||||
|
use strict; |
||||||
|
use warnings; |
||||||
|
|
||||||
|
use Test::More tests => 3; |
||||||
|
|
||||||
|
use Subtitle::Utils qw(:string); |
||||||
|
|
||||||
|
my $line; |
||||||
|
|
||||||
|
$line = " test \r\n"; |
||||||
|
chomp_all($line); |
||||||
|
is($line, ' test '); |
||||||
|
|
||||||
|
$line = "\xEF\xBB\xBFtest"; |
||||||
|
strip_bom($line); |
||||||
|
is($line, 'test'); |
||||||
|
|
||||||
|
$line = ' test '; |
||||||
|
trim($line); |
||||||
|
is($line, 'test'); |
||||||
|
|
||||||
|
exit 0; |
Loading…
Reference in new issue