On p390 of the Camel, 4th edition, there is a code example for how to peek into the main:: symbol table hash ("stash"). I sort of duplicated it in my code, below (with changes to names of variables to suit my tastes), but I get a compile time error. The error is, precisely:
Variable "@sym" is not imported at Scripts-unfinished/env-paths-2yaml.pm line 23. Variable "%sym" is not imported at Scripts-unfinished/env-paths-2yaml.pm line 24. Global symbol "@sym" requires explicit package name (did you forget to declare "my @sym"?) at Scripts-unfinished/env-paths-2yaml.pm line 23. Global symbol "%sym" requires explicit package name (did you forget to declare "my %sym"?) at Scripts-unfinished/env-paths-2yaml.pm line 24. Execution of Scripts-unfinished/env-paths-2yaml.pm aborted due to compilation errors.
Here's the code at the present moment (how much you want to wager that 5 minutes from now I'll see what's wrong? ;-):
#!/usr/bin/env perl # First created: Thu Jul 24 2025 12:47:02 PM -04:00 [EDT] use strict; use v5.18; use utf8; use warnings; use Data::Dumper qw/Dumper/; # use Perl::ImportReport; use Env qw/MANPATH INFOPATH PATH/; # ---------------------- ### ---------------------- # # BEGIN { # require Env; Env->import( grep( /[A-Z]*PATH/ , keys %ENV ) ); # } # ---------------------- ### ---------------------- # my ($symname); use vars ('$sym'); foreach $symname ( sort keys %main::Env:: ) { local *sym = $main::Env::{$symname}; say "\@$symname array is populated" if @sym; say "\%$symname hash is populated" if %sym; } # Try with ImportReport - doesn't work ### -------------------- ### ----------------------- # # my $object = Perl::ImportReport->new( $INC{'Env.pm'} ) # || die "Invalid value for PPI document source"; # say Dumper( $object->get_import_report('imports') ); ### -------------------- ### ----------------------- # __END__
- Soren
Jul 24, 2025 at 18:17 UTC
A just machine to make big decisions
Programmed by fellows (and gals) with compassion and vision
We'll be clean when their work is done
We'll be eternally free yes, and eternally young
Donald Fagen —> I.G.Y.
(Slightly modified for inclusiveness)
In reply to Interrogating stashes - Camel example doesn't work? by Intrepid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |