<div dir="ltr">s/read f/real f/</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 27, 2013 at 6:00 PM, Gaal Yahas <span dir="ltr">&lt;<a href="mailto:gaal@forum2.org" target="_blank">gaal@forum2.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Maybe you can, but at that point you&#39;re really adding more requirements than what Memoize.pm was designed for. For example: how do you prevent your on-disk cache from growing indefinitely? Do you want any warmup queries when your program starts in production, so that the data is partially in RAM? And so on. It may be better to just add some mediator in between the client code and the computation.<div>

<br></div><div>Memoize is really cool, but it&#39;s essentially just sugar for</div><div><br></div><div>{</div><div>my %cache;</div><div>sub f {</div><div>  my $key = cache_key(@_);</div>
<div>  return $cache{$key} if exists $cache{$key};</div><div>  # read f</div><div>  $res = ...</div><div>  $cache{$key} = $res;</div><div>  return $res;</div><div>}</div><div>}</div>
<div><br></div><div>Don&#39;t be afraid of using something else if you need something else.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Thu, Jun 27, 2013 at 4:40 PM, Shmuel Fomberg <span dir="ltr">&lt;<a href="mailto:shmuelfomberg@gmail.com" target="_blank">shmuelfomberg@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">On Thu, Jun 27, 2013 at 8:26 PM, Gaal Yahas wrote:<br><div class="gmail_extra">
<div class="gmail_quote">
<div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">Wouldn&#39;t putting the call to memoize in a BEGIN block do the trick?</div></blockquote><div><br></div></div><div>Ah, it will. But I want to expose the ability of tying the cache to a permanent storage (such as DB_File)  in production or not to, in testing mode.</div>


<div><br></div><div>Which brings me to a new question: I connect the memorized function to a hashref that points to a tied hash that is tied to DB_File.</div><div>Can I tie the hash afterwards? I think that I can.</div><div>


This will solve my memorize problem (that I already solved using one more function call) and will let me init the the permanent storage on run time. I like it.</div><span><font color="#888888"><div><br></div>
<div>Shmuel.</div></font></span></div></div></div>
<br></div></div><div class="im">_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a><br>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br></div></blockquote></div><div class="im"><br><br clear="all"><div><br></div>-- <br>Gaal Yahas &lt;<a href="mailto:gaal@forum2.org" target="_blank">gaal@forum2.org</a>&gt;<br>

<a href="http://gaal.livejournal.com/" target="_blank">http://gaal.livejournal.com/</a>
</div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Gaal Yahas &lt;<a href="mailto:gaal@forum2.org">gaal@forum2.org</a>&gt;<br><a href="http://gaal.livejournal.com/">http://gaal.livejournal.com/</a>
</div>