These are mostly not my ideas (except activate); hopefully not too many of them have already been used.
In the same list as "last", "next", and "redo", we should also have - deeper (works with nest -- cf. II: loop) - yield and resume (for co-routines) Also useful could be: activate <blockname> deactivate <blockname> Useful for optimising: --------------------------------------- $first = 1; foreach (@example) { if($first) { do_something; $first = 0; } else { do_normal_stuff; } } --------------------------------------- Can be done as: --------------------------------------- LABEL: foreach(@example) { OTHEREXAMPLE: { do_something; deactivate OTHEREXAMPLE; next LABEL; } do_normal_stuff; } --------------------------------------- In the example above, the code could modify itself so that OTHEREXAMPLE would not get used at all after the first time (just have an appropriate assembly jump or something). Anyway, that pretty much covers my ideas on Control Structures. :) --------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: [EMAIL PROTECTED] | I am | --------------------------------------------------------------------- ----BEGIN GEEK CODE BLOCK---- Version 3.1 GCS d? s: a-- C++>++++$ US+ P++ L++ E- W+++ N+ w+> M-- V- Y+>++ PGP->++ R(+) !tv B++ DI++++ D+ G e>++ h!/* y- -----END GEEK CODE BLOCK-----