App-colsummary
view release on metacpan or search on metacpan
67891011121314151617181920212223242526use
5.014 ;
use
strict ;
my
$sdt
=
sprintf
'%04d-%02d-%02d %02d:%02d:%02d'
,
do
{
my
@t
= @{[
localtime
]}[5,4,3,2,1,0];
$t
[0]+=1900;
$t
[1]++;
@t
} ;
eval
"use PerlIO::gzip;1"
or
die
"PerlIO::gzip cannot be loaded, so -z does not work. ($Script, $sdt)\n"
if
$o
{z} ;
sub
AlignOut ( @ ) ;
# 出力 ; eachFileã§ã‚‚Colstatã§ã‚‚使ã†ã€‚
sub
ColStat ( $$ ) ;
# $colvals->[列番] 㨠列åã‚’ 渡ã™ã€‚ãã—ã¦ã€ãã®ä¸èº«ãŒè¡¨ç¤ºã•れる。; eachFileã§ã‚‚Colstatã§ã‚‚使ã†ã€‚
sub
d3 ($) {
$_
[0] =~ s/(?<=\d)(?=(\d\d\d)+($|\D))/,/gr } ;
# æ•°ã‚’3æ¡åŒºåˆ‡ã‚Šã«å¤‰æ›ã™ã‚‹ã€‚
sub
eachFile ( $ ) ;
214215216217218219220221222223224225226227228229230231232
last
if
(
$c
>=
$o
{g} ) ;
}
return
@ostr
;
} ;
# é…列å‚ç…§ã‹ã‚‰ã€æœ€å°å€¤æœ€å¤§å€¤ã‚’å–り出ã™
sub
minmaxstr ( $ ) {
* uniq =
sub
(@) {
my
%hh
;
map
{
$hh
{
$_
}++ != 0 ? () :
$_
}
@_
} ;
sub
part ( &@ ) ;
sub
RangeStr ( $$ ) ;
my
@gps
= part {/^0*$/ ? 0 : looks_like_number
$_
? 1 : 2} @{
$_
[0] } ;
my
@ostr
;
push
@ostr
,
join
$o
{r},
sort
& uniq ( @{
$gps
[0]} )
if
$gps
[0] ;
# 空文å—列ãŒã‚ã‚‹ã¨ãã®å‡¦ç†
push
@ostr
, RangeStr( min(@{
$gps
[1]}), max(@{
$gps
[1]}) )
if
$gps
[1] ;
# æ•°ã«è¦‹ãˆã‚‹å€¤ãŒã‚ã‚‹ã¨ãã®å‡¦ç†
push
@ostr
, RangeStr( minstr(@{
$gps
[2]}), maxstr(@{
$gps
[2]}) )
if
$gps
[2] ;
# æ•°ã«è¦‹ãˆãªã„値ãŒã‚ã‚‹ã¨ãã®å‡¦ç†
return
@ostr
;
} ;
sub
part ( &@ ) {
my
(
$cd
,
@l
) =
@_
;
my
@p
;
push
@{
$p
[
$cd
->(
$_
) ] } ,
$_
for
@l
;
@p
} ;
# ã“ã®é–¢æ•°ã¯ List::MoreUtils
sub
RangeStr ( $$ ) {
$_
[0] eq
$_
[1] ?
"$_[0]"
:
"$_[0]$o{r}$_[1]"
}
# 2å€‹ã®æ•°oræ–‡å—列ã‹ã‚‰ 1..2ã®ã‚ˆã†ãªæ–‡å—列を生æˆ
( run in 0.310 second using v1.01-cache-2.11-cpan-4e96b696675 )