/usr/share/perl5/Text/ASCIITable/Wrap.pm is in libtext-asciitable-perl 0.20-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | package Text::ASCIITable::Wrap;
@ISA=qw(Exporter);
@EXPORT = qw();
@EXPORT_OK = qw(wrap);
$VERSION = '0.2';
use Exporter;
use strict;
use Carp;
=head1 NAME
Text::ASCIITable::Wrap - Wrap text
=head1 SHORT DESCRIPTION
Make sure a text never gets wider than the specified width using wordwrap.
=head1 SYNOPSIS
use Text::ASCIITable::Wrap qw{ wrap };
print wrap('This is a long line which will be cut down to several lines',10);
=head1 FUNCTIONS
=head2 wrap($text,$width[,$nostrict]) (exportable)
Wraps text at the specified width. Unless the $nostrict parameter is set, it
will cut down the word if a word is wider than $width. Also supports text with linebreaks.
=cut
sub wrap {
my ($text,$width,$nostrict) = @_;
Carp::shortmess('Missing required text or width parameter.') if (!defined($text) || !defined($width));
my $result='';
for (split(/\n/,$text)) {
$result .= _wrap($_,$width,$nostrict)."\n";
}
chop($result);
return $result;
}
sub _wrap {
my ($text,$width,$nostrict) = @_;
my @result;
my $line='';
$nostrict = defined($nostrict) && $nostrict == 1 ? 1 : 0;
for (split(/ /,$text)) {
my $spc = $line eq '' ? 0 : 1;
my $len = length($line);
my $newlen = $len + $spc + length($_);
if ($len == 0 && $newlen > $width) {
push @result, $nostrict == 1 ? $_ : substr($_,0,$width); # kutt ned bredden
$line='';
}
elsif ($len != 0 && $newlen > $width) {
push @result, $nostrict == 1 ? $line : substr($line,0,$width);
$line = $_;
} else {
$line .= (' ' x $spc).$_;
}
}
push @result,$nostrict == 1 ? $line : substr($line,0,$width) if $line ne '';
return join("\n",@result);
}
1;
__END__
=head1 REQUIRES
Exporter, Carp
=head1 AUTHOR
Håkon Nessjøen, lunatic@cpan.org
=head1 VERSION
Current version is 0.2.
=head1 COPYRIGHT
Copyright 2002-2003 by Håkon Nessjøen.
All rights reserved.
This module is free software;
you can redistribute it and/or modify it under the same terms as Perl itself.
=head1 SEE ALSO
Text::ASCIITable, Text::Wrap
=cut
|