<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:tahoma, new york, times, serif;font-size:12pt"><DIV></DIV>
<DIV>Not sure, and this may be a stupid answer, but could it be you didn't tie the second variable? Its hard for me to debug out of context.<BR><BR> </DIV>---<BR>Mark Mertel<BR>206.441.4663<BR>mark.mertel@yahoo.com<BR>http://www.linkedin.com/in/markmertel<BR>http://www.seattlejobs.com/13147468
<DIV><BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: tahoma, new york, times, serif"><BR>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><FONT face=Tahoma size=2>
<HR SIZE=1>
<B><SPAN style="FONT-WEIGHT: bold">From:</SPAN></B> Peter Darley <pdarley@kinesis-cem.com><BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> spug-list@pm.org<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Friday, March 20, 2009 12:35:40 PM<BR><B><SPAN style="FONT-WEIGHT: bold">Subject:</SPAN></B> SPUG: Confusing behaivior with exported variables<BR></FONT><BR>
<STYLE>
<!--
_filtered {font-family:"Cambria Math";panose-1:2 4 5 3 5 4 6 3 2 4;}
_filtered {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;margin-bottom:.0001pt;font-size:11.0pt;font-family:"Calibri", "sans-serif";}
a:link, span.MsoHyperlink
        {color:blue;text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;text-decoration:underline;}
span.EmailStyle17
        {font-family:"Calibri", "sans-serif";color:windowtext;}
.MsoChpDefault
        {font-size:10.0pt;}
_filtered {margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {}
-->
</STYLE>
<DIV class=Section1>
<P class=MsoNormal>Folks,</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> It’s been a long time since I’ve bugged y’all with a stupid question, but I’ve got a new one so I’m hoping someone can help me out.</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> The problem is with exporting variables, and having them available to both a script that uses the module exporting the variable, and the module it’s self. I have two modules, one on a machine at work and one on a machine at home. Both are doing something that looks super similar to me.</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> At work I have: </P>
<P class=MsoNormal> </P>
<P class=MsoNormal>package Neo::Web;</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>use ...</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>use CGI qw/:standard/;</P>
<P class=MsoNormal>use CGI::Cookie;</P>
<P class=MsoNormal>use Apache::DBI;</P>
<P class=MsoNormal>use Apache::Session::Postgres;</P>
<P class=MsoNormal>use Data::Dumper;</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>BEGIN </P>
<P class=MsoNormal>{</P>
<P class=MsoNormal> use Exporter ();</P>
<P class=MsoNormal> @ISA = qw(Exporter);</P>
<P class=MsoNormal> @EXPORT = qw(%Session $SessionID </P>
<P class=MsoNormal> &TieSession &UntieSession ... );</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> ConnectDB(DBName=>'Sessions');</P>
<P class=MsoNormal>}</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>sub TieSession</P>
<P class=MsoNormal>{</P>
<P class=MsoNormal> tie %Session, 'Apache::Session::Postgres', $SessionID, {Handle=>$Neo::DB::Sessions, Commit=>0};</P>
<P class=MsoNormal> $SessionID = $Session{_session_id};</P>
<P class=MsoNormal>}</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> The scripts using this package can get at %Session, and this module can get at %Session. They are the same variable and have the same contents.</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> At home I have:</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>package Darley::Supers;</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>use ... ;</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>use Data::Dumper;</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>BEGIN </P>
<P class=MsoNormal>{</P>
<P class=MsoNormal> my (%CurrentUser);</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> use Exporter ();</P>
<P class=MsoNormal> @ISA = qw(Exporter);</P>
<P class=MsoNormal> @EXPORT = qw(%CurrentUser</P>
<P class=MsoNormal> &Power &Challenge &GetUser &GetOrg &GetCity);</P>
<P class=MsoNormal>}</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> </P>
<P class=MsoNormal>sub SetCurrentOrgSetting</P>
<P class=MsoNormal>{</P>
<P class=MsoNormal> my (%Args) = @_;</P>
<P class=MsoNormal> # Args: Setting = Setting to store</P>
<P class=MsoNormal> # Value = Value to store</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> StoreOrgSetting(OrgID=>$CurrentUser{Org}{org_id}, Setting=>$Args{Setting}, Value=>$Args{Value});</P>
<P class=MsoNormal> $CurrentUser{Org}{Settings}{$Args{Setting}} = $Args{Value};</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> return 1;</P>
<P class=MsoNormal>}</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> And the script using this module can get at %CurrentUser, but when this package uses it, it’s empty. I can’t figure out why the exported hash is the same in the first example, but has two different values in the second.</P>
<P class=MsoNormal> </P>
<P class=MsoNormal>Thanks for any help,</P>
<P class=MsoNormal>Peter</P>
<P class=MsoNormal> </P>
<P class=MsoNormal> </P></DIV></DIV></DIV></div><br>
</body></html>