in reply to Variable declared in script, used by module, and used in script
Quick and dirty (Windows 7, Perl 5.8.9):
Module check_module.pm:
Note esp. that 'qq/echo $home_dir/' is single-quoted in the .pm file.package check_module; use Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(@checks); our @checks = ( { name => 'Anybody home?', script => 'qq/echo $home_dir/', }, ); 1;
Script:
(Update: The trick here is to eval the $check->{script} string from the module in the scope of the script in which $home_dir is declared and initialized.)c:\@Work\Perl\monks\ExReg>perl -wMstrict -le "use strict; use warnings; use check_module; my $home_dir = '/home/mine/'; for my $check ( @checks ) { print qq{Checking $check->{name}}; my $evaled_script = eval qq{$check->{script}}; print `$evaled_script`; } " Checking Anybody home? /home/mine/
Update 1: If you had included the use warnings; use strict; statements in the .pm module (after the package statement), you would have had a slightly earlier and possibly slightly more informative notification that something was going sideways.
Update 2:
... [a] system that cannot use CPAN ...See Yes, even you can use CPAN.
Give a man a fish: <%-{-{-{-<
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Variable declared in script, used by module, and used in script
by ExReg (Priest) on May 16, 2018 at 17:47 UTC |
In Section
Seekers of Perl Wisdom