summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Barr <gbarr@ti.com>1998-05-15 11:47:28 +0000
committerTim Bunce <TimBunce@ig.ac.uk>1998-05-15 11:47:28 +0000
commiteb0338755aa9eed0eb2540b9b640b5ab337dcc2e (patch)
treed798c87f00b14f37dd2ee94c0db81fdf44d428da
parentdcf6088bb1fec02aa649f566083201f09550ae4f (diff)
downloadperl-eb0338755aa9eed0eb2540b9b640b5ab337dcc2e.tar.gz
"Add hook to tie %! to external Errno.pm module (not included)"
Msg-ID: <355080CD.1111BC81@ti.com> Files: gv.c p4raw-id: //depot/maint-5.004/perl@981
-rw-r--r--gv.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/gv.c b/gv.c
index fc12847737..3081a51bd7 100644
--- a/gv.c
+++ b/gv.c
@@ -740,13 +740,28 @@ I32 sv_type;
#endif
goto magicalize;
+ case '!':
+ if(len > 1)
+ break;
+ if(sv_type == SVt_PVHV) {
+ HV* stash = gv_stashpvn("Errno",5,FALSE);
+ if(!stash || !(gv_fetchmethod(stash, "TIEHASH"))) {
+ dSP;
+ PUTBACK;
+ perl_require_pv("Errno.pm");
+ SPAGAIN;
+ stash = gv_stashpvn("Errno",5,FALSE);
+ if (!stash || !(gv_fetchmethod(stash, "TIEHASH")))
+ croak("%! is not avaliable on this machine");
+ }
+ }
+ goto magicalize;
case '#':
case '*':
if (dowarn && len == 1 && sv_type == SVt_PV)
warn("Use of $%s is deprecated", name);
/* FALL THROUGH */
case '[':
- case '!':
case '^':
case '~':
case '=':