#!./perl
BEGIN {
chdir
't'
if
-d
't'
;
require
'./test.pl'
;
}
plan
reverse
9;
open
my
$fh
,
"test.pl"
or
die
"$0 unfortunately cannot open test.pl: $!"
;
is
select
,
'main::STDOUT'
,
'select retval'
;
is
select
(
$fh
),
'main::STDOUT'
,
'select retval when called with argument'
;
ok
ref
select
,
'select returns ref for glob generated by open'
;
is
select
,
$fh
,
'the ref returned references the right referent'
;
is
select
(STDOUT),
$fh
,
'select previous ref when setting to bareword'
;
is
select
,
'main::STDOUT'
,
'switching back to STDOUT'
;
is
ref
\
select
,
'SCALAR'
,
'and STDOUT is a plain string'
;
open
foo::bar,
"test.pl"
or
die
"$0 sadly cannot open test.pl: $!"
;
select
foo::bar;
$handle
= \
*foo::bar
;
$stash
= \
%foo::
;
*foo::
=
*bar::
;
is
select
,
$handle
,
'select returns ref for glob whose stash has been detached'
;
open
thwat::snin,
"test.pl"
or
die
"$0 is unable to open test.pl: $!"
;
select
thwat::snin;
$handle
= \
*thwat::snin
;
*thwat::
=
*snin::
;
is
select
,
$handle
,
'select returns ref for glob with no stash pointer'
;