App-diff_spreadsheets
view release on metacpan or search on metacpan
bin/diff_spreadsheets view on Meta::CPAN
#!/usr/bin/env perl
# License: Public Domain or CC0
# See https://creativecommons.org/publicdomain/zero/1.0/
# The author, Jim Avera (jim.avera at gmail) has waived all copyright and
# related or neighboring rights. Attribution is requested but is not required.
use strict; use warnings FATAL => 'all';
our $VERSION = '1.027'; # VERSION
our $DATE = '2024-10-17'; # DATE
#use 5.12; # for unicode_strings
use v5.18; # for lexical_subs
use strict; use warnings;
use feature qw(state say lexical_subs fc);
use feature qw(unicode_strings unicode_eval evalbytes);
no warnings "experimental::lexical_subs";
use Carp; $Carp::MaxArgNums = 0;
use Data::Dumper::Interp 6.007 qw/:DEFAULT dviso/;
use Path::Tiny 0.144;
#use File::Basename qw(basename dirname fileparse);
#use File::Path qw(make_path remove_tree);
#use File::Temp qw(tempfile tempdir);
#use File::Copy ();
#use File::Spec;
t/t_Common.pm view on Meta::CPAN
Cwd->import::into($target, qw/getcwd abs_path fastgetcwd fast_abs_path/);
require Guard;
Guard->import::into($target, qw(scope_guard guard));
use Data::Dumper::Interp 6.006 ();
unless (Cwd::abs_path(__FILE__) =~ /Data-Dumper-Interp/) {
# unless we are testing DDI
Data::Dumper::Interp->import::into($target,
qw/:DEFAULT rdvis rvis addrvis_digits/);
$Data::Dumper::Interp::Useqq = 'unicode'; # omit 'controlpic' to get \t etc.
}
# chain to Exporter to export any other importable items
goto &Exporter::import
}
use File::Temp 0.23 ();
sub mytempfile { ##DEPRECATED
Path::Tiny->tempfile(@_); # does everything we used to do
t/t_TestCommon.pm view on Meta::CPAN
use POSIX qw/INT_MAX/;
use File::Basename qw/dirname/;
use Capture::Tiny qw/capture capture_merged tee_merged/;
use Env qw/@PATH @PERL5LIB/; # ties @PATH, @PERL5LIB
use Config;
BEGIN {
unless (Cwd::abs_path(__FILE__) =~ /Data-Dumper-Interp/) {
# unless we are testing DDI
#$Data::Dumper::Interp::Foldwidth = undef; # use terminal width
$Data::Dumper::Interp::Useqq = "controlpics:unicode";
}
}
sub bug(@) { @_=("BUG FOUND:",@_); goto &Carp::confess }
# Parse manual-testing args from @ARGV
my @orig_ARGV = @ARGV;
our ($debug, $verbose, $silent, $savepath, $nobail, $nonrandom, %dvs);
use Getopt::Long qw(GetOptions);
Getopt::Long::Configure("pass_through");
t/t_TestCommon.pm view on Meta::CPAN
sub showcontrols(_) {
local $_ = shift;
s/\n/\N{U+2424}/sg; # a special NL glyph
s/[\x{00}-\x{1F}]/ chr( ord($&)+0x2400 ) /aseg;
rawstr
}
# Show controls as traditional \t \n etc. if possible
sub showstr(_) {
if (defined &Data::Dumper::Interp::visnew) {
return visnew->Useqq("unicode")->vis(shift);
} else {
# I don't want to require Data::Dumper::Interp to be
# loaded although it will be if t_Common.pm was used also.
return showcontrols(shift);
}
}
# Show the raw string in French Quotes.
# If STDOUT is not UTF-8 encoded, also show D::D hex escapes
# so we can still see something useful in output from non-Unicode platforms.
( run in 0.380 second using v1.01-cache-2.11-cpan-88abd93f124 )