nysus has asked for the wisdom of the Perl Monks concerning the following question:
Monks, I was toying around with importing/requiring to improve my aptitude with them. So I have this package:
#! /usr/bin/env perl package A; require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw (sub1 $var); our %EXPORT_TAGS = (all => [ qw(sub1 $var) ]); our $var = 7; sub sub1 { print "this\n"; } 1;
I want to use require to import the $var global. I try this:
#! /usr/bin/env perl use strict; use warnings; use lib '.'; require A; A->import (':all'); sub1(); print $var . "\n";
This script throws Global symbol "$var" requires explicit package name (did you forget to declare "my $var"?).
But I have no such error with Use A like so:
#! /usr/bin/env perl use strict; use warnings; use lib '.'; use A ':all'; print $var . "\n";
So I have a gap in my knowledge. I'm not sure why the second way works and the first doesn't. Any guidance is appreciated. Thanks!
$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest Vicar";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: How do I import a global variable form a package with require?
by choroba (Cardinal) on Jul 22, 2021 at 13:53 UTC | |
by haj (Vicar) on Jul 22, 2021 at 14:30 UTC | |
by nysus (Parson) on Jul 22, 2021 at 13:58 UTC | |
by choroba (Cardinal) on Jul 22, 2021 at 14:05 UTC | |
by nysus (Parson) on Jul 22, 2021 at 14:18 UTC | |
by eyepopslikeamosquito (Archbishop) on Jul 23, 2021 at 09:47 UTC | |
|
Back to
Seekers of Perl Wisdom