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]