Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Refactoring Perl 3 - Inline Temp

by hossman (Prior)
on Jul 17, 2007 at 20:15 UTC ( [id://627116]=note: print w/replies, xml ) Need Help??


in reply to Refactoring Perl #3 - Inline Temp

i'm not sure what you mean by "to turn a once dynamic variable into a read-only" ... that doesn't really seem to relate to the refactoring at hand, nor does it relate to declaring a variable "final" in java ... Readonly seems to be the perfect corollary for perl.

UPDATE: based on a message i just got, apparently i wasn't clear about my "i'm not sure what you mean" comment ... I do understand the concept of "locking" a variable that could previously be changed so that once it is locked it is effectively readonly -- but i assumed i must have been misunderstanding the OP question, since that has nothing to do with the refactoring.

This refactoring only works if a variable is assigned once, the comment by Fowler about declaring the variable "final" before attempting the refactoring is all about ensuring that it really is a "read only" from the very start.

Replies are listed 'Best First'.
Re^2: Refactoring Perl 3 - Inline Temp
by agianni (Hermit) on Jul 18, 2007 at 15:47 UTC

    Sorry, I think the first part of the problem was my misunderstanding of the final keyword in Java. I didn't realize that it was a declaration keyword. As such, something like Readonly is a perfect equivalent in Perl (although the additional recommendations are much appreciated).

    As for the second issue, this doesn't have anything to do directly with refactoring. I simply pointed out that Fowler suggested this method for a sanity check before performing the refactor. I just thought this was useful enough to call out, much as I have mentioned testing techniques in other write-ups that don't directly relate to refactoring.

    perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://627116]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (3)
As of 2024-04-25 16:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found