diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2004-03-28 15:08:23 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2004-03-28 15:08:23 +0000 |
commit | 4ad16c232af72afff4d7d0d37f532c709df5d9f0 (patch) | |
tree | a1929af1b39420f55850b65678d17e13915347d0 | |
parent | 46316b0a1e18bbab306c955d1ad4c7942f675812 (diff) | |
download | perl-4ad16c232af72afff4d7d0d37f532c709df5d9f0.tar.gz |
make gv_fullname() etc include a literal '^' for *^FOO style names
p4raw-id: //depot/perl@22606
-rw-r--r-- | gv.c | 8 | ||||
-rwxr-xr-x | t/op/gv.t | 5 |
2 files changed, 11 insertions, 2 deletions
@@ -1096,7 +1096,13 @@ Perl_gv_fullname4(pTHX_ SV *sv, GV *gv, const char *prefix, bool keepmain) sv_catpv(sv,name); sv_catpvn(sv,"::", 2); } - sv_catpvn(sv,GvNAME(gv),GvNAMELEN(gv)); + if (((unsigned int)*GvNAME(gv)) <= 26) { /* handle $^FOO */ + Perl_sv_catpvf(aTHX_ sv,"^%c", *GvNAME(gv) + 'A' - 1); + sv_catpvn(sv,GvNAME(gv)+1,GvNAMELEN(gv)-1); + } + else + sv_catpvn(sv,GvNAME(gv),GvNAMELEN(gv)); + } void @@ -11,7 +11,7 @@ BEGIN { use warnings; -print "1..52\n"; +print "1..53\n"; # type coersion on assignment $foo = 'foo'; @@ -242,6 +242,9 @@ print $j[0] == 1 ? "ok 43\n" : "not ok 43\n"; print $x || "not ok 52\n"; } +# stringified typeglob should escape leading control char +print *^A eq "*main::^A" ? "ok 53\n" : "not ok 53\n"; + __END__ ok 44 ok 48 |