App-Bin4TSV
view release on metacpan or search on metacpan
scripts/csel view on Meta::CPAN
my $split_limit = $isep eq '' ? 0 : -1 ; # split ã§ä½¿ããsplit//ã¯LIMIT=0ã«ããªãã¨ãçµæã«ç©ºæååã®å¤ãæå¾ã«çãã
my $osep = $isep eq '' && $o{n} ? ' ' : $isep ; # åºåã®åºåãå
& init ; # ãªãã·ã§ã³ã«ã¤ãã¦ã®å¦ç
& main ; # ã¡ã¤ã³ã®å¦ç printColsMain
exit 0 ;
# åæåå¦çã®çºã®å±éã®å¦ç
sub expand ( $ ) { # ã¾ã ã³ã³ãã§åå², # 次㫠.. ãå±éããã # æå¾ã«æ£ã®æ°ã¯ 1ãå¼ãã
#print BRIGHT_BLUE Dumper ["cNP=",%colNamePos] ;
return () if ! defined $_[0] ;
my @gr = split /,/ , $_[0] ; # grain ç©ç©ã®ç²ã®ã¤ãããexpandedãèããããã¹ãã«é·éãã
my $l = scalar @gr ;
for ( reverse 0 .. $#gr ) {
if ( $gr [ $_ ] =~ m|(.+)\.\.(.+)| ) { # *æ«å°¾* ããæ°åãå±éããã
my ($c1,$c2) = ($1,$2) ;
if ( $o{'='} ) { $c1 = $colNamePos { $c1 } ; $c2 = $colNamePos { $c2 } } #; print "\$c1=$c1, \$c2=$c2\n" } ;
splice @gr , $_ , 1 , ( $c1 <= $c2 ? $c1 .. $c2 : reverse $c2 .. $c1 ) ;
} else {
$gr[ $_ ] = $colNamePos { $gr[ $_ ] } if $o{'='} ;
}
}
scripts/csel view on Meta::CPAN
# main
sub main {
binmode STDOUT ,":utf8" if $isep eq '' ; # æååä½ã§å¦çããå ´åãutf8ã¨ãã¦ã®æ±ããããã
# ä¸è¡ç®ã㤠-= ãæå®ãããå ´åã®å¦ç
if ( $o{'='} ) {
$_ = <> ;
chomp ;
my $c = 0 ;
$colNamePos { $_ } = ++ $c for split /$isep/ , $_ , $split_limit ; # <-- å岿ååã«æ°ãã¤ããã
$cream{ $_ } = [ expand $o{$_} ] for qw/p d h t/ ;
line ; # <-- -
}
else {
$cream{ $_ } = [ expand $o{$_} ] for qw/p d h t/ ;
}
#print BRIGHT_GREEN Dumper [%colNamePos] ;
# å¼ãç¶ãå¦çã-=ãç¡ãå ´åã«ã¯ãããããå§ã¾ãã
while ( <> ) {
line
} ;
}
( run in 1.594 second using v1.01-cache-2.11-cpan-97f6503c9c8 )