Bin-Data-1D

 view release on metacpan or  search on metacpan

scripts/alluniq  view on Meta::CPAN

	    return 1 if $o{q} ;
	    print STDERR # {$o{q} ? \* STDOUT : \*STDERR }
	      CYAN "Some counted lines are " , BRIGHT_RED "same.  " ,  
	      CYAN , "Different " , BRIGHT_CYAN (scalar keys %str2cnt) , CYAN " / All " , BRIGHT_CYAN $. . " ; " , 
	      CYAN ,  "Maximum multiplication : " , BRIGHT_CYAN  max( values %str2cnt ) ,
	      CYAN "  ($Script)\n"  ;
	    return 1 ; 
	}
}

sub tableOutput( ) { 
    ## 2. 度数nの異なる文字列が、具体的にどんな値であったか。
    while ( my( $str, $cnt) = each %str2cnt ) {
       push @{ $cnt2strs {$cnt} }, $str ; 
    }
    my $msep = $o{2} ? "\n" : "\t"  ;
    print $o{2} ? "mult\tfreq\n" : "mult\tfreq\texamples\n" ;

    for my $count ( sort { $a <=> $b } keys %cnt2strs ) {
        print "$count\t", scalar @{ $cnt2strs {$count} }, $msep ; 
        next if $o{2} ; # -2 指定の場合は、該当文字列の例を出力しない。

scripts/chars2code  view on Meta::CPAN

my $h = $o{b} ? '0x' : $o{w}? '0x' : 'u+' ; # 区点番号を出力する時に表示する接頭辞

my $base = $o{0} ? 0 : 1 ; # ゼロオリジンにするか、1オリジンにするか
if ( $o{n} ) { & CountChars }
elsif ( $o{1} ) { & OneLineOneChar }
else { & LinePreserve } ; 
exit 0 ; 


# 1文字を制御文字についてはエスケープ文字を付けた様な形にする。ある種の文字の正規化する。
sub norChar($){
  state  $x = \{ 0,'\0',7,'\a',8,'\b',9,'\t',10,'\n',11,'\v',12,'\f',13,'\r',27,'\e'} ; 
  return $$x->{ ord $_[0] } // $_[0] ;
}

sub LinePreserve { 
  say CYAN UNDERLINE +( $o{':'} ? 'lin#:' : '' ) . '#char', DARK '(#bytes)' , RESET UNDERLINE "\tchar ", DARK "u+code .." ;
  while (<>) { 
  	my $str = decode ( $_ ) ; 
  	print CYAN 	+($o{':'}?($.+$base-1).":":''), length $str , DARK '('  , length $_ , ')' , RESET "\t" ;
    for ( split //, $str , 0 ) { 

scripts/uniq-c  view on Meta::CPAN

#!/usr/bin/perl
use 5.001 ; use strict ; use warnings ;
use Getopt::Std ; getopts '01y:!.:,:~@:' , \my%o ;
use Term::ANSIColor qw[ color :constants ] ; $Term::ANSIColor::AUTORESET = 1 ;
use FindBin qw[ $Script ] ;

sub sigint () ; # Ctrl-C が押下された時の動作
sub dtfmtlocal () ; # 現在の日時を返す
sub choreOpt () ; # コマンド引数の処理
sub mainCore() ; 
sub y_init () ; 
sub y_filter ($) ;
sub cyc_rep () ;

my $printOut ; # 各行でどういう出力処理をするか。オプションで書き換わる。
my $prevline ; # 直前行の内容
my $count = 1 ;
my @y_ranges ; 
my $cyc_len = $o{'@'} // 1e5 ; # 何行毎にレポートを発生させるか。
my ( $time0 , $time00 ) = ( time ) x 2 ; 



( run in 0.811 second using v1.01-cache-2.11-cpan-65fba6d93b7 )