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

(ichimunki) Re x 5: Thoughts on Perl6 - Love it? Hate it?

by ichimunki (Priest)
on Jan 11, 2002 at 03:43 UTC ( #137866=note: print w/replies, xml ) Need Help??


in reply to Re: (ichimunki) Re x 3: Thoughts on Perl6 - Love it? Hate it?
in thread Thoughts on Perl6 - Love it? Hate it?

Your example methodology adds not one, but two layers of indirection to what is otherwise a straightforward question-- and gets none of the fall through capability of the typical switch statement at the same time. It is therefore less than optimal in situations where switch is designed to be most used.

The one place your indirect method absolutely shines is when you want to set up a mutating hash of anonymous subs (the dispatch table essentially). You keep your condition tree static perhaps (or the condition tree could be just another dispatch (or dispatches!) in the dispatch table). Then you can swap different subs in an out for the same results/conditions labels. Although I'd have to wonder if you can do this for any non-trivial, non-proof of concept application and maintain your sanity or the application later. *grin*
  • Comment on (ichimunki) Re x 5: Thoughts on Perl6 - Love it? Hate it?

Replies are listed 'Best First'.
(dragonchild) Re x 6: Thoughts on Perl6 - Love it? Hate it?
by dragonchild (Archbishop) on Jan 11, 2002 at 20:28 UTC
    No, I don't have the fall-through capability, natively. One would have to have the functions themselves call each other to gain fall-through. (If 'A' would fall through to 'B', then A() does a return B(@_); at the end.) This is somewhat counter-intuitive and very tightly coupled, but it does have benefits.

    The primary benefit I see, apart from the dynamic nature of it, is that I can pass args to my switch clauses. In addition, I've separated out my switch clauses from one another, which means that they can be arbitrarily long and not go over-long within the same function.

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

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://137866]
help
Chatterbox?
[Corion]: Sure
[Corion]: Do you have any specific interests or general Perl knowledge?
[Cosmic37]: should I slurp? should I grep? Noble Lords I wish you good karma and beg your advice
[Corion]: Cosmic37: Ah, see perlfaq4, about How do I compute the intersection of two arrays
[Cosmic37]: I am out of practice; I use Perl for scientific programming for number crunching
[Corion]: Cosmic37: Basically, you read one file into a hash, keyed by your key, and then match the lines from the second file to that hash
[Cosmic37]: note that the two files only have datetimes which may match whereas other data per line is different format in file1 and file2 - is that really intersection?
[jedikaiti]: Hi Monks
[Corion]: Cosmic37: Well, if you want to use only parts of a line for the key, see split or whatever other mechanism to extract the key from the line
[Corion]: Hi jedikaiti!

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (8)
As of 2017-06-29 16:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (672 votes). Check out past polls.