Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Refactoring prototypes - what am I going to break

by Sidhekin (Priest)
on Oct 30, 2007 at 16:06 UTC ( #648040=note: print w/ replies, xml ) Need Help??


in reply to Refactoring prototypes - what am I going to break

moritz already demonstrated how precedence might break.

Further, context might break. (Update: And tye said so already, while I was writing this. Eh.)

Given those prototypes, files_identical( foo(), bar() ) currently means files_identical( scalar(foo()), scalar(bar()) ). Dropping prototypes means putting foo() and bar() in list context instead.

If foo() is (or returns something that is) context sensitive, this may break.

(Likewise, inspection_current( @array ) will, given the prototype, get the number of elements in @array. Without the prototype, it will get the first element. Given that this argument is called $file, this is a rather far-fetched scenario, but should serve to illustrate context sensitivity.)

In this case, the standard wisdom on prototypes may well be trumped by the standard wisdom of legacy code:

If it ain't broke, don't fix it.

print "Just another Perl ${\(trickster and hacker)},"
The Sidhekin proves Sidhe did it!


Comment on Re: Refactoring prototypes - what am I going to break
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (10)
As of 2015-07-08 03:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls