Chas Owens wrote:
> On 3/21/07, Mathew Snyder <[EMAIL PROTECTED]> wrote:
> snip
>> my %customer = ${customer};
> snip
>
> Hashes cannot be created with only one value, they must always be in
> pairs: key and value. If $customer has a type of HASH (you can put
>
> print ref($customer), "\n";
>
> in the code to check this) then you need to say
>
> my %customer = %$customer;
>
> to dereference the hashref
I'm under the impression that by assigning a single value to a hash it becomes
the key with the value being null.
.
>
> snip
>> my %env = $transaction->Creator;
>> my %env = ${env};
> snip
>
> I have no idea why you are declaring %env twice. I also don't know
> why you aren't getting an error due to the fact that $env is never
> declared. I must assume this is not a direct copy of what you are
> working with. If $transaction->Creator returns a list of key-value
> pairs then that line is fine; if it returns a hashref instead then you
> need to wrap it in %{} like this
>
Actually, the double declaration was a mistake that I had seen immediately after
posting last time. I took it out but the error didn't go away.
> my %env = %{$transaction->Creator};
>
> snip
>> $env{$user} = $transaction->TimeTaken;
> snip
>
> Again, unless $transaction->TimeTaken returns a list of key-value
> pairs you have a problem here.
>
> You should check your documentation to see what the return values of
> these methods are.
>
I did as you said and dereferenced each of those methods. Now, instead of
getting "5" in the error, I'm getting "72". These numbers correspond to user
IDs. I don't know why it is telling me "Can't use string ("72") as a HASH ref
while "strict refs" in use at ./user_timesheet_new.pl line 27."
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/