App-Bin4TSV-6
view release on metacpan or search on metacpan
#!/usr/bin/perl -T
use 5.008 ; use strict ; use warnings ; # 5.011
use Getopt::Std ; getopts '~=!R:d:0:h:i:np:rt:' , \my %o ;
use List::Util qw [ max ] ;
use Encode qw/decode_utf8/ ;
use Memoize ;
use Data::Dumper ;
use Term::ANSIColor qw[ :constants] ; $Term::ANSIColor::AUTORESET = 1 ;
memoize ( 'sCols' ) ; # ãã®ããã°ã©ã ã«ç¾ãã sCols 颿°ãé«éåããã
$| = 1 if $o{'!'} ;
my %cream ; # åã®çªå·ã®é
åãæ ¼ç´ããã
# $cream{p} åºåããããæå®ããåçªå·ã®ç¡åé
å
# $cream{d} åé¤ããããæå®ããåçªå·ã®ç¡åé
å
# $cream{h} å
é ã«ç§»åããããã«æå®ããåçªå·ã®ç¡åé
å
# $cream{t} æ«å°¾ã«ç§»åããããã«æå®ããåçªå·ã®ç¡åé
å
return [ @out ] ;
}
# åè¡ã®åºåå¦çã sCols颿°ãå¼ã³åºãã¦ã鏿ããã-n ã§åçªå·ãä»ããã
sub line ( ) {
chomp ;
& R0proc ;
$_ = decode_utf8 ( $_ ) if $isep eq '' ; # å
¥åãSTDINã¨ã¯éããªãã®ã§ binmode ã使ãã decode_utf8
my @F = split /$isep/ , $_ , $split_limit ; #use Data::Dumper ; print scalar @F , Dumper [@F];
@F = map { $_ + 1 . ":$F[$_]" } 0 .. $#F if $o{n} ; # -n ã§åçªå·ãã³ãã³ãä»ãã¦åºå
push @F , $emp ; # $F[-1] ã§åç
§ãã
print join ( "$osep" , @F [ @{ sCols $#F } ] ) , "\n" ;
}
# main
sub main {
binmode STDOUT ,":utf8" if $isep eq '' ; # æååä½ã§å¦çããå ´åãutf8ã¨ãã¦ã®æ±ããããã
# ä¸è¡ç®ã㤠-= ãæå®ãããå ´åã®å¦ç
( run in 0.246 second using v1.01-cache-2.11-cpan-4d50c553e7e )