#! /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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |