APM: global scope array doesn't seem to be global
jeremy
jeremyb at univista.com
Tue May 6 21:33:27 CDT 2003
Sometimes it just takes talking about it...
I had put 'my @repeat = undef' on lines 642 and 511.
where it should have been '@repeat = undef'.
Sorry and thanks,
Jeremy
On Tue, 2003-05-06 at 21:05, jeremy wrote:
> Mongers,
>
>
> I've been working on a CGI script that does quite bit of syncing,
> parsing and rendering of content from other http servers. The script is
> split into several sub routines. At the beginning of the script I
> declare several vars, arrays and hashes that are referenced by the
> various subs. The array I'm having problems with is call @repeat.
>
> @repeat is declared at the top of the script before any subs get
> called. It gets populated by a sub called GEN_CONTENT(). GEN_CONTENT()
> calls REPEAT_CONTENT() which does some content rendering with the values
> in the @repeat array, among others.
>
>
> THE SYSTEM:
>
> Red Hat 7.1
> Linux 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686 unknown
> v5.6.0 built for i386-linux
>
>
>
> THE PROBLEM:
>
> Just prior to calling REPEAT_CONTENT() from GEN_CONTENT() the @repeat
> array is, indeed, populated with what I expect. Next, when I print out
> the elements of @repeat from within REPEAT_CONTENT(), all it contains is
> a single blank line. After REPEAT_CONTENT returns, I check the elements
> of @repeat again from GEN_CONTENT() and everything is as it should be
> just like it was prior to entering into REPEAT_CONTENT().
>
> The problem is obviously that @repeat is not global in scope, I just
> don't know why. I would expect this behavior if I had not declared
> @repeat at the beginning of the script, but I did. Furthermore it
> doesn't get declared again anywhere inside GEN_CONTENT(), which might
> cause this problem. The script is 1050 lines long so I'll not be
> including it here!
>
> Any ideas on what the problem is?
>
> Here's the snippet of code I describe and the top of the script where
> the declarations are:
>
>
> 575 print "before REPEAT_CONTENT( task )\n";
> 576 foreach( @repeat ){
> 577 print "====== $_\n";
> 578 }
> 579
> 580 &REPEAT_CONTENT( 'task' );
> 581
> 582 print "After REPEAT_CONTENT( task )\n";
> 583 foreach( @repeat ){
> 584 print "====== $_\n";
> 585 }
>
>
> Here's the beginning snippet from REPEAT_CONTENT where I check the
> content of @repeat:
>
>
> 756 sub REPEAT_CONTENT{
> 757
> 758
> 759 ########################### DEBUG
> 760 if ( $config{ debug } eq 'yes' ){
> 761 print "\n\n Inside REPEAT_CONTENT( $_[0]$_[1] )\n\n";
> 762 foreach( @repeat ){
> 763 print "====== $_ \n";
> 764 }
> 765 }
>
>
>
>
> 1 #!/usr/bin/perl
> 2
> 3 use strict;
> 4 use LWP::UserAgent;
> 5 use HTTP::Cookies;
> 6 use CGI;
> 7
> 8 my $config_file = "/etc/owapi/conf/shrinkwrap.conf";
> 9
> 10
> 11 # Not set in the config file ....leave these alone!
> 12 my $do_sync = undef;
> 13 my @task_table = undef;
> 14 my @table_data = undef;
> 15 my @cal_table = undef;
> 16 my @eml_elements = undef;
> 17 my @repeat = undef;
>
>
> thanks in advance,
> Jeremy
>
> _______________________________________________
> Austin mailing list
> Austin at mail.pm.org
> http://mail.pm.org/mailman/listinfo/austin
More information about the Austin
mailing list