>>>>> "BL" == Bart Lateur <[EMAIL PROTECTED]> writes:
BL> On Thu, 07 Sep 2006 03:29:02 -0400, Uri Guttman wrote: >> this line of my code grew to its present form which i find amusing. >> >> @{$self->{templates}}{ keys %{$tmpls} } = >> map ref $_ eq 'SCALAR' ? \"${$_}" : \"$_", values %{$tmpls} ; >> >> discuss amongst yourselves. topics include: what does it do? wtf am i >> doing that? and general esthetics. BL> It makes a ref to a (stringified) copy of every scalar, or dereferenced BL> scalar ref. 1 point for that! BL> Why would anyone take a copy instead of using an alias? Well, duh! To BL> make it safe to modify without touching the original, of course. Why you BL> are storing references instead of the string values, I don't know. It BL> won't save space. it saves copying around between methods and such. loading a template from a file is done with file::slurp returning a scalar ref. and the template cache lookup is done via another method which also wants to return a ref. i could store the cached templates as plain scalars but i went this way (for at least today! :). internally scalar refs are passed around and only copies are made when they will be modified. and since the templates can be passed in as scalar refs, i wanted to make sure the cached templates are not modifiable from the outside, hence the copying in that line of code. BL> BTW I assume this module is the subject of the slides at BL> <http://www.sysarch.com/tiny_template/slides/index.html>, no? yep. that also has the original 42 line hack version of this module. uri -- Uri Guttman ------ [EMAIL PROTECTED] -------- http://www.stemsystems.com --Perl Consulting, Stem Development, Systems Architecture, Design and Coding- Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org