diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-11-12 09:25:55 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-11-12 09:25:55 -0600 |
commit | 34805376fa48a707b1a7f52f3a282ee5cacd2cf9 (patch) | |
tree | 024096cf644712dcd827aa87f373131235b01dd1 /lib | |
parent | 996a8db0046b5172fadd26b389f73030f00149eb (diff) | |
download | package-stash-xs-34805376fa48a707b1a7f52f3a282ee5cacd2cf9.tar.gz package-stash-xs-34805376fa48a707b1a7f52f3a282ee5cacd2cf9.zip |
has_package_symbol
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Package/Stash.pm | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/lib/Package/Stash.pm b/lib/Package/Stash.pm index 51226ec..2015046 100644 --- a/lib/Package/Stash.pm +++ b/lib/Package/Stash.pm @@ -163,39 +163,6 @@ Removes all package variables with the given name, regardless of sigil. Returns whether or not the given package variable (including sigil) exists. -=cut - -sub has_package_symbol { - my ($self, $variable) = @_; - - my ($name, $sigil, $type) = ref $variable eq 'HASH' - ? @{$variable}{qw[name sigil type]} - : $self->_deconstruct_variable_name($variable); - - my $namespace = $self->namespace; - - return unless exists $namespace->{$name}; - - my $entry_ref = \$namespace->{$name}; - if (reftype($entry_ref) eq 'GLOB') { - # XXX: assigning to any typeglob slot also initializes the SCALAR slot, - # and saying that an undef scalar variable doesn't exist is probably - # vaguely less surprising than a scalar variable popping into existence - # without anyone defining it - if ($type eq 'SCALAR') { - return defined ${ *{$entry_ref}{$type} }; - } - else { - return defined *{$entry_ref}{$type}; - } - } - else { - # a symbol table entry can be -1 (stub), string (stub with prototype), - # or reference (constant) - return $type eq 'CODE'; - } -} - =method get_package_symbol $variable Returns the value of the given package variable (including sigil). |