App-Bin4TSV
view release on metacpan or search on metacpan
scripts/cat-n view on Meta::CPAN
#!/usr/bin/perl
use 5.001 ; use strict ; use warnings ;
use Getopt::Std ; getopts ":=!,:T:", \my %o ;
use Term::ANSIColor qw[ :constants color ] ; $Term::ANSIColor::RESET = 1 ;
sub lineNumber ( ) ;
$! = 1 if $o{'!'} ;
$o{','} //= "\t" ;
$o{','} = eval qq[qq[$o{','}]] ;
$o{T} //= 2 ; # ä»ã®ã³ãã³ãã§ãä¼¼ãæ§ãªCtrl-Cã«å¯¾ããå¦çãæ³å®ãã¦ãé·ãã®10ç§ã妥å½ããç¥ããªãã
$SIG{INT} = \&sigint1 ;
# ã¡ã¤ã³ã®å¦ç
if ( ! $o{':'} ) {
print lineNumber() , "$o{','}$_" while ( <> ) ;
}
else {
print lineNumber() , ":$o{','}$_" while ( <> ) ;
}
sub lineNumber ( ) {
return $o{'='} ? $. == 1 ? "=" : $. - 1 : $. ;
}
# Ctrl-C ãæ¼ä¸ãããæã®å¦ç
sub sigint1 {
use FindBin qw[ $Script ] ;
print STDERR "\n" , YELLOW "$.-th line is processing ($Script). " , scalar localtime () , color('reset') , "\n" ;
sleep $o{T} ;
$SIG{ALRM} = sub { $SIG{INT} = \&sigint1 } ;
$SIG{INT} = sub { die } ;
alarm $o{T} ;
}
# ãã«ãã®æ±ã
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
use FindBin qw[ $Script ] ;
$ARGV[1] //= '' ;
open my $FH , '<' , $0 ;
while(<$FH>){
s/\$0/$Script/g ;
print $_ if s/^=head1// .. s/^=cut// and $ARGV[1] =~ /^o(p(t(i(o(ns?)?)?)?)?)?$/i ? m/^\s+\-/ : 1;
}
close $FH ;
exit 0 ;
}
=encoding utf8
=head1
$0
Unixã®ã³ãã³ãã使ã£ã cat -n ã¨åãããã«ãåè¡ã®å
é ã«è¡çªå·ãä»å ããã
ãã ããä½è¨ãªç©ºç½æåãªã©ã¯å
¥ããªããè¡çªå·ã¨å
ã®å
¥åæååã®éã«ã¯
ã¿ãæåã®ã¿ãå
¥ãã
ãªããCtrl-C ãæ¼ä¸ãããã¨ãã«ãä½è¡ç®ãå¦çãã¦ããããæ¨æºã¨ã©ã¼åºåã«åºãã
ãªãã·ã§ã³:
-= ; å
é è¡ã®è¡çªå·ã = ã2è¡ç®ããè¡çªå·ã1ããå§ããã
-: ; è¡çªå·ã®ç´å¾ã«ã³ãã³æå(:) ãä»å ããã
-, str ; è¡çªå·ã¨ã®éã®åºåãæåã®æå®ãæªæå®ãªãã°ãã¿ãæåã
-! ; ãããã¡ãªã³ã°ãããªããåºåãããã°ããããã¡ã«èããã«ãããåºåããã
-T num ; Ctrl-C ãæ¼ä¸ãããã¨ãã«ãnumç§åä½ã忢ãããããã«numç§ä»¥å
ã«åããã¼ãæ¼ãããããçµäºãããæªæå®ãªã2ç§ã
=cut
( run in 1.243 second using v1.01-cache-2.11-cpan-39bf76dae61 )