Cross Reference: nargv.t
xref
: /
osnet-11
/
usr
/
src
/
cmd
/
perl
/
5.8.4
/
distrib
/
t
/
io
/
nargv.t
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
1
N/A
#!./perl
1
N/A
1
N/A
print
"1..5\n"
;
1
N/A
1
N/A
my
$j =
1
;
1
N/A
for
$i
(
1
,
2
,
5
,
4
,
3
)
{
1
N/A
$file
=
mkfiles
($i)
;
1
N/A
open
(
FH
,
">
$file
"
)
||
die
"can't create
$file
: $!"
;
1
N/A
print
FH
"not ok "
. $j++ .
"\n"
;
1
N/A
close
(
FH
)
||
die
"Can't close
$file
: $!"
;
1
N/A
}
1
N/A
1
N/A
1
N/A
{
1
N/A
local
*
ARGV
;
1
N/A
local
$^I =
'.bak'
;
1
N/A
local
$_;
1
N/A
@
ARGV
=
mkfiles
(
1
..
3
)
;
1
N/A
$n =
0
;
1
N/A
while
(<>)
{
1
N/A
print
STDOUT
"# initial \@ARGV: [@ARGV]\n"
;
1
N/A
if
($n++ ==
2
)
{
1
N/A
other
()
;
1
N/A
}
1
N/A
show
()
;
1
N/A
}
1
N/A
}
1
N/A
1
N/A
$^I =
undef
;
1
N/A
@
ARGV
=
mkfiles
(
1
..
3
)
;
1
N/A
$n =
0
;
1
N/A
while
(<>)
{
1
N/A
print
STDOUT
"#final \@ARGV: [@ARGV]\n"
;
1
N/A
if
($n++ ==
2
)
{
1
N/A
other
()
;
1
N/A
}
1
N/A
show
()
;
1
N/A
}
1
N/A
1
N/A
sub
show
{
1
N/A
#warn "$ARGV: $_";
1
N/A
s/^
not
//;
1
N/A
print
;
1
N/A
}
1
N/A
1
N/A
sub
other
{
1
N/A
print
STDOUT
"# Calling other\n"
;
1
N/A
local
*
ARGV
;
1
N/A
local
*
ARGVOUT
;
1
N/A
local
$_;
1
N/A
@
ARGV
=
mkfiles
(
5
,
4
)
;
1
N/A
while
(<>)
{
1
N/A
print
STDOUT
"# inner \@ARGV: [@ARGV]\n"
;
1
N/A
show
()
;
1
N/A
}
1
N/A
}
1
N/A
1
N/A
sub
mkfiles
{
1
N/A
my
@
files
=
map
{
"scratch$_"
} @_;
1
N/A
return
wantarray
? @
files
:
$files
[-
1
];
1
N/A
}
1
N/A
1
N/A
END
{
unlink
map
{
($_,
"$
_.bak
"
)
}
mkfiles
(
1
..
5
)
}