Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Re: Tied hashes and arrays, yeah. But tied typeglobs?

by Phaysis (Pilgrim)
on Sep 29, 2003 at 23:18 UTC ( [id://295144] : note . print w/replies, xml ) Need Help??

in reply to Re: Tied hashes and arrays, yeah. But tied typeglobs?
in thread Tied hashes and arrays, yeah. But tied typeglobs?

I've considered something like that, actually. My problem with that is having to rewrite the code that uses these classes to put yet-another-step (and many extra keystrokes) into each usage of the code.

What I'm thinking about, though, is having each row-hash autoconvert to a row-collection when the SQL select returns many rows. The main My::DB code will create an arrayref, then iteratively call itself to load hashrefs into that arrayref to store each row. During usage in that situation, each access to the tied hash object will get/set data relative to a "cursor" which points to any given row. To manipulate the cursor, I may either access a method using the statement $tho->setCursor(25) to increment, decrement, set or get the current cursor/row position. Or, an easier way is to simply write to a specially-named (and hopefully unique and unclobberable) hash key, something like this:

$th{'_CURSORPOS_'} = $newRowSelection;

This, of course, may be frought with potential problems should I have a table, down the road, with a column named '_CURSORPOS_'. As well, I'd have to use a read-only hash key named something like '_TOTALROWS_' to return the total number of rows in the collection for usage in loops. I hate flattening things like this, but it might be my way out of this problem.

(Ph) Phaysis (Shawn)
If idle hands are the tools of the devil, are idol tools the hands of god?