App-crosstable
view release on metacpan or search on metacpan
#!/usr/bin/perl
use 5.014 ; use strict ; use warnings ;
use Scalar::Util qw/looks_like_number/; # 5.7 ~
use Getopt::Std; getopts '::^:~=+:,:@:0:1:R:d:i:qvm:' , \my %o ;
use Term::ANSIColor qw/:constants color/; $Term::ANSIColor::AUTORESET = 1 ;# v5.6 ~
#use utf8 ;
my $isep = $o{i} // "\t" ; # å
¥åã®åºåãæå
my $oemp = $o{'0'} // 0 ; # åºåã®ã»ã«ãæªå®ç¾©å¤ã®å ´åã«ä»£ããã«åºåããæåå
my $sec = $o{'@'} // 10 ; # ä½ç§ãã¨ã«å¦çç¶æ
ãåºåãããã
my $optR0 = defined $o{R} && $o{R} eq 0 ;
my $addC ; # ããåãå ç®ããå ´åã®åã®æå®
my $t00 ; # 表ã®å·¦ä¸é
ã«è¼ããæåå
my %ax2 ; # ãã¼ã¯æ¨ªè»¸ã®é
ç®åã¨ãªãã
showMat( \%Ce , "empties" ) ; # 空æååãããã¤åºç¾ããã
}
$SIG{INT} = $IntFirst
# my %Cv ; for my$i(@a1){for my$j(@a2){$Cv{$i}{$j}=($Cc{$i}{$j}//0)-($Ce{$i}{$j}//0)}}
}
sub StrNumSort ( @ ) {
+( sort { $a cmp $b } grep { ! looks_like_number ($_) } @_ ) ,
( sort { $a <=> $b } grep { looks_like_number ($_) } @_ ) ;
}
sub showMat ( $$ ) {
my ($C,$h11) = @_ ; # ã»ã«, 縦軸, 横軸, åºå表ã®å·¦ä¸ã®æåå
my @a1 = StrNumSort ( keys %{$C} ) ; # 縦軸ã®åé
ç®å
my @a2 = StrNumSort ( keys %ax2 ) ; # 横軸ã®åé
ç®å
if ( defined $o{':'} ) {
@a1 = () ; # ãªã»ãã
( run in 0.408 second using v1.01-cache-2.11-cpan-64827b87656 )