Section 10.4. The Naked Block Control Structure


10.4. The Naked Block Control Structure

The so-called "naked" block is one without a keyword or condition. That is, suppose you start with a while loop, which looks something like this:

     while (condition) {       body;       body;       body;     } 

Remove the while keyword and the conditional expression, and you'll have a naked block:

     {       body;       body;       body;     } 

The naked block is like a while or foreach loop, except that it doesn't loop; it executes the body of the loop once, and it's done. It's an un-loop!

You'll see other uses for the naked block, but one of its features is providing a scope for temporary lexical variables:

     {       print "Please enter a number: ";       chomp(my $n = <STDIN>);       my $root = sqrt $n;  # calculate the square root       print "The square root of $n is $root.\n";     } 

In this block, $n and $root are temporary variables scoped to the block. As a general guideline, all variables should be declared in the smallest scope available. If you need a variable for a few lines of code, you can put those lines into a naked block and declare the variable inside that block. If you need the value of $n or $root later, you will need to declare them in a larger scope.

You may have noticed the sqrt function in that code and wondered about it; yes, we haven't shown this function before. Perl has many built-in functions beyond the scope of this book. When you're ready, check the perlfunc manpage to learn about more of them.



Learning Perl
Learning Perl, 5th Edition
ISBN: 0596520107
EAN: 2147483647
Year: 2003
Pages: 232

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net