Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
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 lurking in the Monastery: (7)
As of 2014-12-19 05:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (70 votes), past polls