Darren New wrote:
> 
> > So?  Pass these in as arguments.  There's no need to recompile a
> > procedure for each and every different set of arguments that might
> > be passed to it.  That would defeat the point of having procedures
> > in the first place.
> 
> A binding isn't a procedure.

That depends on your interface to Tk ... in perl, a binding *is* a
procedure.  Well, actually it's either a procedure or a method name.

   bind $b '<Button>', sub { print "Button pressed.\n" };

The 'sub' keyword creates an unnamed procedure.

> Indeed, I'm pretty sure that [eval] doesn't
> cache bytecode in bindings because it's more inefficient than
> regenerating the bytecodes each time. It's good style to invoke a
> procedure, but hardly necessary. And indeed, putting something like
> "break" or "continue" inside a procedure called by a binding doesn't
> have the same effect as putting it in the binding.

What are the semantics of "break" and "continue" in a procedure, when
they don't refer to a label or loop within that procedure?

-- 
my $n = 2; print +(split //, 'e,4c3H r ktulrnsJ2tPaeh'
.."\n1oa! er")[map $n = ($n * 24 + 30) % 31, (42) x 26]