> I have a function in a lib that we use that has two referenced
> hashes.

No, you have a method in a class that has two referenced hashes.
Computers are frustratingly pedantic, and mastering the art requires
the same level of attention do detail at the human leve.

> 
> 
> ....
> my $zone   = $self->{'zone'};
> my $params = $self->{'report-params'};
> my %zone_list = ();
> 
> $count = $zone->generate_zone_list(\%zone_list,\%params);

You should have gotten a warning here remarkably similar to:
 Global symbol "%params" requires explicit package name at /tmp/test.pl line 9. 
 

(unless you have some other variable named %params that you are not telling us 
about)

> ----------------------------------
> 
> sub generate_zone_list {
>       my ($self,$results_hash,$params) = @_;
> 
>       my $sched_id = %{$params}->scheduleId();
>       my $filekey      = $filekey.$sched_id;
>       my $temp_file     = "/tmp/.bw3-temp-${filekey}.tmp";
> 
>         return $temp_file;
> }
> 
> This is what I would expect this to work. If I don't pass params as a
> reference it works with the following line:
> my $sched_id = $params->scheduleId();
> 
> Anyone have an idea what might be going on here?
> 

One can glean since $params->scheduleId() provides the response that
you want, that $params is an object, and you don't need to pass it by
reference.  (ALL objects in Perl are implemented as blessed references
to SOMETHING)

just call $count = $zone->generate_zone_list(\%zone_list, $params);

In other news "$count" is a terrible name for a variable that is going
to hold a filename.

--L



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to