start page | rating of books | rating of authors | reviews | copyrights

Learning Perl on Win32 Systems

Learning Perl on Win32 SystemsSearch this book
Previous: 9.2 The next Statement Chapter 9
Miscellaneous Control Structures
Next: 9.4 Labeled Blocks
 

9.3 The redo Statement

The third way you can jump around in a looping block is with redo . This construct causes a jump to the beginning of the current block (without reevaluating the control expression), like so:



while (

somecondition

) {         # redo comes here         

something

;         

something

;         

something

;         if (

somecondition

) {             

somestuff

;             

somestuff

;             redo;         }         

morething

;         

morething

;         

morething

; }

Once again, the if block doesn't count - just the looping blocks.

With redo , last , and a naked block, you can make an infinite loop that exits out of the middle, like so:

{         

startstuff

;         

startstuff

;         

startstuff

;         if (

somecondition

) {             last;         }         

laterstuff

;         

laterstuff

;         

laterstuff

;         redo; }

This logic would be appropriate for a while -like loop that needed to have some part of the loop executed as initialization before the first test. (In a later section entitled "Expression Modifiers ," we'll show you how to write that if statement with fewer punctuation characters.)


Previous: 9.2 The next Statement Learning Perl on Win32 Systems Next: 9.4 Labeled Blocks
9.2 The next Statement Book Index 9.4 Labeled Blocks