| Server IP : 167.235.67.158 / Your IP : 216.73.216.95 Web Server : Apache System : Linux ubuntu-8gb-nbg1-1 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026 x86_64 User : upstairsbar.co.uk ( 982) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/x86_64-linux-gnu/perl-base/Text/ |
Upload File : |
use strict; use warnings;
package Text::Tabs;
BEGIN { require Exporter; *import = \&Exporter::import }
our @EXPORT = qw( expand unexpand $tabstop );
our $VERSION = '2021.0814';
our $SUBVERSION = 'modern'; # back-compat vestige
our $tabstop = 8;
sub expand {
my @l;
my $pad;
for ( @_ ) {
defined or do { push @l, ''; next };
my $s = '';
for (split(/^/m, $_, -1)) {
my $offs;
for (split(/\t/, $_, -1)) {
if (defined $offs) {
$pad = $tabstop - $offs % $tabstop;
$s .= " " x $pad;
}
$s .= $_;
$offs = () = /\PM/g;
}
}
push(@l, $s);
}
return @l if wantarray;
return $l[0];
}
sub unexpand
{
my (@l) = @_;
my @e;
my $x;
my $line;
my @lines;
my $lastbit;
my $ts_as_space = " " x $tabstop;
for $x (@l) {
defined $x or next;
@lines = split("\n", $x, -1);
for $line (@lines) {
$line = expand($line);
@e = split(/((?:\PM\pM*){$tabstop})/,$line,-1);
$lastbit = pop(@e);
$lastbit = ''
unless defined $lastbit;
$lastbit = "\t"
if $lastbit eq $ts_as_space;
for $_ (@e) {
s/ +$/\t/;
}
$line = join('',@e, $lastbit);
}
$x = join("\n", @lines);
}
return @l if wantarray;
return $l[0];
}
1;
__END__