in reply to Corrupted Object memory addresses

As explained in the CB, the memory address wasn't corrupted, the reference was. It was replaced with a string, and modifications were made to that string. This surely occurred because of a missing dereference.

Looking at the code you provided, I see

$logic = ($cA & $cB & $cC & $cD);

$logic is assigned a string or a number (depending on the values of $cA, $cB, $cC and $cD), but then you do

$logic->as_string

Needless to say, the random string or number you created is not an object, and the call fails.

Judging by the value that does end up in $logic, you've got a second problem. $cA, $cB, $cC or $cD contains a object reference, but you're treating it as a bit string. This is what's corrupting the reference.

Replies are listed 'Best First'.
Re^2: Corrupted Object memory addresses
by alexkalderimis (Initiate) on Jun 21, 2010 at 17:44 UTC
    Thanks for the comments - they certainly led me to the answer: I had already overloaded the & and | operators in one package, but I needed to do this to another as well. Thanks for your help.