summaryrefslogtreecommitdiffstats
path: root/lib/Package/Stash/PP.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Package/Stash/PP.pm')
-rw-r--r--lib/Package/Stash/PP.pm6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Package/Stash/PP.pm b/lib/Package/Stash/PP.pm
index b3e3a7d..408f3be 100644
--- a/lib/Package/Stash/PP.pm
+++ b/lib/Package/Stash/PP.pm
@@ -92,6 +92,12 @@ sub namespace {
(defined $variable && length $variable)
|| confess "You must pass a variable name";
+ # XXX in pure perl, this will access things in inner packages,
+ # in xs, this will segfault - probably look more into this at
+ # some point
+ ($variable !~ /::/)
+ || confess "Variable names may not contain ::";
+
my $sigil = substr($variable, 0, 1, '');
if (exists $SIGIL_MAP{$sigil}) {