nargv.t
来自「UNIX下perl实现代码」· T 代码 · 共 64 行
T
64 行
#!./perlprint "1..5\n";my $j = 1;for $i ( 1,2,5,4,3 ) { $file = mkfiles($i); open(FH, "> $file") || die "can't create $file: $!"; print FH "not ok " . $j++ . "\n"; close(FH) || die "Can't close $file: $!";}{ local *ARGV; local $^I = '.bak'; local $_; @ARGV = mkfiles(1..3); $n = 0; while (<>) { print STDOUT "# initial \@ARGV: [@ARGV]\n"; if ($n++ == 2) { other(); } show(); }}$^I = undef;@ARGV = mkfiles(1..3);$n = 0;while (<>) { print STDOUT "#final \@ARGV: [@ARGV]\n"; if ($n++ == 2) { other(); } show();}sub show { #warn "$ARGV: $_"; s/^not //; print;}sub other { print STDOUT "# Calling other\n"; local *ARGV; local *ARGVOUT; local $_; @ARGV = mkfiles(5, 4); while (<>) { print STDOUT "# inner \@ARGV: [@ARGV]\n"; show(); }}sub mkfiles { my @files = map { "scratch$_" } @_; return wantarray ? @files : $files[-1];}END { unlink map { ($_, "$_.bak") } mkfiles(1..5) }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?