Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Re: Style & subroutine organization

by camelman (Sexton)
on Aug 29, 2001 at 18:54 UTC ( #108773=note: print w/replies, xml ) Need Help??


in reply to Re: Style & subroutine organization
in thread Style & subroutine organization

Sorry about the vague question. All three of these functions would be independent in the sense that they do not pass each other data but I would like to execute them in a row. I meant the execution order in my two options to be equivalent. As silly as it seems, something like this:
#!/usr/bin/perl -w use strict; func1(); func2(); func3(); sub func1{ print "I am the first subroutine\n"; return 0; } sub func2{ print "I am the second subroutine\n"; return 0; } sub func3{ print "I am the thrid subroutine\n"; return 0; }

Replies are listed 'Best First'.
Maintainable style is the best style
by dragonchild (Archbishop) on Aug 29, 2001 at 19:02 UTC
    The way listed here is the canonical way of calling three completely-independent functions in a row. It is very readable and maintainable.

    Maintainable, just to go off on a slight rant, is where there are no hidden assumptions. If you were to do:

    sub foo1 { foo2(); } sub foo2 { foo3(); } sub foo3{ }
    I would assume that foo1() depends on the result of foo2() in some fashion. If it doesn't, then I am very confused. Your piece of hidden information here is that there is no dependence between the function, other than they all need to be executed at the beginning of your script.

    If you reduce the amount of information that someone needs to know that cannot be directly deduced from reading the logical structure of your code (you do indent logically, right?), that improves the maintainability of your code. Maintainable code should be your holy grail, above and beyond any other consideration (except for correctness). It should be more important than optimization (save for when business needs demand it).

    ------
    We are the carpenters and bricklayers of the Information Age.

    Vote paco for President!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (10)
As of 2019-11-13 12:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Strict and warnings: which comes first?



    Results (72 votes). Check out past polls.

    Notices?