Perl offers scalar types of variables that store single values.

For storing multiple values with a single variable, Arrays and List are used.

Arrays are a special type of variable that holds multiple values.

Array variables are declared with @ followed by the variable name.

@numbers = ("one", "two", "three");

Each element is a scalar value type in an array

How to create an array in Perl

Array Variables can be created using @symbol.

Array initiated with data in multiple ways

  • using () symbol Variables are declared with @variable and initialized with a group of values, separated by commas enclosed in ().
@numbers = ("one", "two", "three");
  • use the qw operator qa operator followed by / and a list of values ending with /. This operator parses the string, delimited by space.
@strings = qw/another way to declare variable/;
  • using sequential arrays

It is another shortcut way to assign sequential numbers and letters to the array. Syntax

@array1 = (start..end);

The start and end are numbers or letters. It contains .. and is enclosed in ()

@array1 = (10..20);
@array2 = (b..k);
print "@array1\n";
print "@array2\n";

with printing an array in Perl, output:

10 11 12 13 14 15 16 17 18 19 20
b c d e f g h i j k

How to access the elements in an array?

Once you declare an array, elements can be accessed with a variable prefixed with $ using the below syntax.

$arrayvariable[index]

index starts from zero until the length of a string minus 1.

Here is an example

@numbers = ("one", "two", "three");
print($numbers[0]); # one
print($numbers[1]); # two
print($numbers[2]); # three

Another example

@strings = qw/another way to declare variable/;
print($strings[0]); # another
print($strings[1]); # way
print($strings[2]); # to
print($strings[3]); # declare
print($strings[4]); # variable

Find the size of an array in Perl.

To get the size of an array, Please follow multiple ways

  • using scalar keyword
@array1 = (10..20);
@array2 = (b..k);
print "@array1\n";
print "@array2\n";
print scalar @array1,"\n";#11
print scalar @array2;#10
  • using default variable syntax

Perl default variable($#) returns the last index of an array. Add 1 to this result to get the size of an array

@array1 = (1,2,3,5);
@array2 = (b..k);
print $#array1,"\n"; #3
print $#array2; #9

How to iterate an array of elements in Perl?

To iterate elements in an array, use for loop

@array1 = (1,2,3,4,5);
for my $item (@array1) {
print $item,"\n";
}

output:

1
2
3
4
5
@array1 = (1,2,3,4,5);
for my $i (0 .. $#array1) {
print $i,"-",$array1[$i],"\n";
}

output:

0-1
1-2
2-3
3-4
4-5

Perl Array Functions

Perl provides various Inbuilt functions to add or remove elements from an array. Below operators mutate an array.

  • Left Side processing operator
    • Shift
    • unshift
  • Right side Processing operator
    • pop
    • push: adds an element to an array at the end.
  • splice

Perl Shift Example

Perl Push example

Arrays can be added with the below syntax array[index] if we know the index.

@numbers = ("1", "2", "3");
$numbers[3] = "4";
print "@numbers"; # 1 2 3 4

Another way to add using the push function in Perl.

The push function adds an element to the end of an array.

Syntax:

push(array, element)

Here, the element is added to the end of an array and returns an element. Here is an example of how to add an element to an array.

@numbers = ("1", "2", "3");
push(@numbers, "4");
print "@numbers"; # 1 2 3 4

Perl pop example

pop function removes the last element from an array. It is the opposite of the push function. It mutates an array.

pop(array)

The last element removed from an array returns an element. Here is an example of how to remove an element from an array.

@numbers = ("1", "2","3");
$result = pop(@numbers);
print "$result\n"; # 3
print "@numbers\n"; #1 2