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;
}

Now, take away 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 just executes the body of the loop once, and it's done. It's an un-loop!

We'll see in a while that there are other uses for the naked block, but one of its features is that it provides 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 just a few lines of code, you can put those lines into a naked block and declare the variable inside that block. Of course, if we would need the value of either $n or $root later, we would need to declare them in a larger scope.

You may have noticed the sqrt function in that code and wondered about it yes, it's a function we haven't shown before. Perl has many builtin functions that are 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: 2001
Pages: 205

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