Hello,<br><div class="gmail_quote"><br>The big difference between my module and DBM::Deep is that my module uses a SQL database (like MySQL) instead of flat files. DBM::Deep has implemented its own locking and concurrency system that is not likely to be a robust as a real SQL database.<br>

<br>Other than that the concepts are very similar. Basically, you do what you want to your data structures and the results are transparently and persistently stored for you.<br><br><br>-Mike<div><div></div><div class="h5">
<br><br><br><div class="gmail_quote">
On Mon, Nov 16, 2009 at 5:27 PM, Rob Kinyon <span dir="ltr">&lt;<a href="mailto:rob.kinyon@gmail.com" target="_blank">rob.kinyon@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

I&#39;d be very interested in seeing how this and DBM::Deep could play together.<br>
<br>
Rob<br>
<br>
2009/11/16 Michael Frager &lt;<a href="mailto:mike@dialyourleads.com" target="_blank">mike@dialyourleads.com</a>&gt;:<br>
<div><div></div><div>&gt; Hello (again) Columbus.pm,<br>
&gt;<br>
&gt; I have developed a module that is somewhat like MLDBM. In case you&#39;re not<br>
&gt; familiar with MLDBM, this module will take a hash and synchronize its<br>
&gt; contents with a DB file for persistent storage. Unlike a regular hash tied<br>
&gt; to a DB file, MLDBM will save entire data structures that are contained<br>
&gt; within the hash keys, serializing them on the fly.<br>
&gt;<br>
&gt; I&#39;ve taken that concept a little bit further and developed a module that<br>
&gt; will synchronize both hashes and arrays with a SQL database. Each element of<br>
&gt; the data structure being stored can either be stored as its own row or its<br>
&gt; entire contents serialized (similar to MLDBM). The process is recursive so<br>
&gt; entire structures can be stored this way.<br>
&gt;<br>
&gt; The upshot is that you can take an entire Perl data structure, made of any<br>
&gt; combination of hashes and arrays, and just place it into a SQL database. It<br>
&gt; works no matter how deep the structure is and without the need for a custom<br>
&gt; SQL schema. Since Perl&#39;s &quot;tie&quot; function is use, once the structure is<br>
&gt; stored, it can be manipulated like any variable, except that changes will be<br>
&gt; transparently stored in the SQL database.<br>
&gt;<br>
&gt; I&#39;m in the processes of preparing this module for CPAN, I was wondering if<br>
&gt; there is anyone in the Columbus.pm group who might be interested in learning<br>
&gt; about it?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Thanks,<br>
&gt;<br>
&gt;<br>
&gt; Michael K Frager, Software Developer<br>
&gt;<br>
&gt; ~ Dial Your Leads ~<br>
&gt;<br>
&gt; [+] Phone:    (888) 310-4474<br>
&gt; [+] Website: <a href="https://www.dialyourleads.com/" target="_blank">https://www.dialyourleads.com/</a><br>
&gt;<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; Columbus-pm mailing list<br>
&gt; <a href="http://columbus.pm.org/" target="_blank">http://columbus.pm.org/</a><br>
&gt; <a href="mailto:Columbus-pm@pm.org" target="_blank">Columbus-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/columbus-pm" target="_blank">http://mail.pm.org/mailman/listinfo/columbus-pm</a><br>
&gt;<br>
<br>
<br>
<br>
--<br>
Thanks,<br>
<font color="#888888">Rob Kinyon<br>
</font></blockquote></div>
</div></div></div><br><br clear="all"><br>-- <br><br>Michael K Frager, Software Developer<br><br>~ Dial Your Leads ~<br><br>[+] Phone:    (888) 310-4474<br>[+] Website: <a href="https://www.dialyourleads.com/">https://www.dialyourleads.com/</a><br>
<br>