Text-Lossy
view release on metacpan or search on metacpan
script/text-lossy view on Meta::CPAN
#!/usr/bin/env perl
use 5.008;
use strict;
use warnings;
use open ':std', IO => ':utf8'; # all is utf8!
use Getopt::Long;
use Pod::Usage;
use Text::Lossy;
my $help = undef;
my $version = undef;
my $available_filters = undef;
my @filters = ();
GetOptions(
'help' => \$help,
'version' => \$version,
'filter=s' => \@filters,
'1' => sub { @filters = qw( lower ); },
'2' => sub { @filters = qw( lower whitespace ); },
'3' => sub { @filters = qw( lower punctuation_sp whitespace ); },
'paragraph' => sub { $/ = ''; }, # global, we're in top scope here
'2l' => sub { @filters = qw( lower whitespace_nl ); },
'3l' => sub { @filters = qw( lower punctuation_sp whitespace_nl ); },
'available-filters' => \$available_filters,
) or pod2usage(2);
if ($help) {
pod2usage(1)
}
if ($version) {
print "text-lossy version $Text::Lossy::VERSION\n";
exit(0);
}
if ($available_filters) {
my @available = Text::Lossy->available_filters();
print "Available filters: \n";
foreach my $f (@available) {
print " $f\n"
}
exit(0);
}
# Multiple filters, in-order
@filters = split(qr{ , }xms, join(',', @filters));
my $lossy = Text::Lossy->new();
$lossy->add( @filters );
while (my $line = <>) {
$line = $lossy->process($line);
print $line;
}
# No extra newline, nice as it would be: no longer idempotent!
__END__
=head1 NAME
text-lossy - lossy text compression via entropy reduction
=head1 SYNOPSIS
text-lossy [-1|-2|-3|--filter <aa,bb,cc>|--paragraph] [file ...]
Options:
- help This help
- version Version of text-lossy
- filter aa,bb,cc Add filters named 'aa', 'bb' and 'cc' to the process
This option can also be given more than once
- available-filters List of available filters
- 1 Preset 1: filter 'lower'
- 2 Preset 2: filters 'lower whitespace'
- 3 Preset 3: filters 'lower punctuation_sp whitespace'
- 2l Same as preset 2, but uses 'whitespace_nl'
- 3l Same as preset 3, but uses 'whitespace_nl'
- paragraph Read files in paragraph mode
=head1 OPTIONS
=over 4
( run in 0.813 second using v1.01-cache-2.11-cpan-364913b4093 )