Perl last (original) (raw)

Summary: in this tutorial, you will learn how to use the Perl last statement to exit a loop immediately.

Introduction to the Perl last statement

The Perl last statement is used inside a loop to exit the loop immediately. The last statement is like the break statement in other languages such as C/C++, and Java.

In practice, you often use the last statement to exit a loop if a condition is satisfied e.g., you find an array element that matches a search key, therefore, it is not necessary to examine other elements.

Because of this, you typically use the last statement in conjunction with a conditional statement such as if or unless .

The following illustrates how to use the last statement inside a while or for loop statement.

Inside a while statement (the same for the until statement):

`while(condition){

process something

last if(expression);

some more code

}`Code language: Perl (perl)

Inside a for loop statement:

`for(@a){

process current element

last if(condition);

some more code

}`Code language: Perl (perl)

For the do while and do until statement, you have to use an additional block {} as described in more detail in the corresponding tutorial.

The following flowchart illustrates how the last statement works inside a while loop statement.

Perl last statement

Perl last statement examples

Let’s start with a simple example to find an element in a hash by a given key.

`#!/usr/bin/perl use warnings; use strict;

my ($key, $value);

my %h = ("apple" => 1, "orange" => 2, "mango" => 3, "coconut" => 4);

print("Please enter a key to search:\n"); $key = ;

chomp($key);

$value = 0;

searching

foreach(keys %h){ if($_ eq $key){ value=value = value=h{$_}; last; # stop searching if found } }

print the result

if($value > 0){ print("element keyfoundwithvalue:key found with value: keyfoundwithvalue:value\n"); }else{ print("element $key not found\n"); }`Code language: Perl (perl)

How program works.

Perl last statement with loop label example

If you use the last command alone, it exits only the innermost loop. In case, you have a nested loop that is a loop, called inner loop, nested inside another loop, called outer loop. If you want to exit both the inner and outer loop you need to:

The following example demonstrates how to use the last statement with a label:

`#!/usr/bin/perl use warnings; use strict;

my ($key, $value);

my %h = ("apple" => 1, "orange" => 2, "mango" => 3, "coconut" => 4);

$value = 0;

print("Please enter a key to search:\n");

OUTER: while(){

get input form user

key=key = key=_; chomp($key);

seaching

INNER: foreach(keys %h){ if($_ eq $key){ value=value = value=h{$_}; last OUTER; # exit the while loop } } # end for print("Not found, Please try again:\n") if($value == 0);

}# end while

print("element found with value: $value\n");`Code language: Perl (perl)

In this tutorial, we have shown you how to exit the loops immediately by using the Perl last statement.

Was this tutorial helpful ?