4 # various typeglob tests
17 # type coercion on assignment
21 is(ref(\$bar), 'SCALAR');
24 # type coercion (not) on misc ops
27 is(ref(\$foo), 'GLOB');
29 unlike ($foo, qr/abcd/);
30 is(ref(\$foo), 'GLOB');
32 is($foo, '*main::bar');
33 is(ref(\$foo), 'GLOB');
38 is(ref(\$foo), 'GLOB', 'no type coercion when assigning to *{} retval');
41 \$::{phake}, \*{"phake"},
42 'symbolic *{} returns symtab entry when FAKE'
44 ${\*{"phake"}} = undef;
46 ref(\$::{phake}), 'GLOB',
47 'no type coercion when assigning to retval of symbolic *{}'
52 \$::{phaque}, \*phaque,
53 "compile-time *{} returns symtab entry when FAKE"
58 ref(\$::{phaque}), 'GLOB',
59 'no type coercion when assigning to retval of compile-time *{}'
63 # type coercion on substitutions that match
72 # typeglobs as lvalues
73 substr($foo, 0, 1) = "XXX";
74 is(ref(\$foo), 'SCALAR');
75 is($foo, 'XXXmain::bar');
77 # returning glob values
79 local($bar) = *main::foo;
86 is(ref(\$fuu), 'GLOB');
90 is(ref(\$baa), 'GLOB');