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!
You’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 you would need the value of either $n or $root
later, you 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 built-in functions that are beyond the scope of this book.
When you’re ready, check the perlfunc manpage to
learn about more of them.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access