Perl | Arrays

In Perl, array is a special type of variable. The array is used to store the list of values and each object of the list is termed as an element. Elements can either be a number, string, or any type of scalar data including another variable.
arrays
 
Example:

@number = (50, 70, 46);             
@names = ("Geeks", "For", "Geeks");

Array Creation: In Perl programming every array variable is declared using “@” sign before the variable’s name. A single array can also store elements of multiple datatypes. For Example:

# Define an array
@arr = (1, 2, 3);
@arr = (1, 2, 3, "Hello");

Array creation using qw function:
qw() function is the easiest way to create an array of single-quoted words. It takes an expression as an input and extracts the words separated by a whitespace and then returns a list of those words. The best thing is that the expression can be surrounded by any delimiter like- () ” [] {} // etc. However () and // are used generally.

Syntax:

qw (Expression)
qw /Expression/
qw 'Expression'
qw {Expression}

Example :

filter_none

edit
close

play_arrow

link
brightness_4
code

# Perl program to demonstrate qw function
  
# using qw function
@arr1 = qw /This is a Perl Tutorial by GeeksforGeeks/;
  
# Creates array2 with elements at
# index 2,3,4 in array1
@arr2 = @arr1[2,3,4]; 
  
print "Elements of arr1 are:\n";
foreach $ele (@arr1)
{
    print "$ele \n";
}
  
print "Elements of arr2 are:\n";
foreach $ele (@arr2)
{
     print "$ele \n";
}

chevron_right


Output:

Elements of arr1 are:
This 
is 
a 
Perl 
Tutorial 
by 
GeeksforGeeks 
Elements of arr2 are:
a 
Perl 
Tutorial 

Accessing Array Elements: For accessing the elements of an array we must prefix “$” sign before the array variable name followed by the index in square brackets. For Example:

# Define an array
@arr = (1, 2, 3);

# Accesing and printing first 
# element of an array
print "$arr[0]\n";

# Accesing and printing second
# element of an array
print "$arr[1]\n";

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Perl program to demonstrate Array's
# creation and accessing array's elements
  
# Creation an array fruits
@fruits = ("apple", "banana", "pineapple", "kiwi");
  
# printing the array
print "@fruits\n";
  
# Prints the array's elements
# one by one using index
print "$fruits[0]\n";
print "$fruits[1]\n";
print "$fruits[2]\n";
print "$fruits[3]\n";

chevron_right


Output:

apple banana pineapple kiwi
apple
banana
pineapple
kiwi

Note: Array indices always start from zero. To access the first element it must to give 0 as indices. We can also give a negative index. But giving negative index will result in selecting the array elements from ending not from the beginning.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Perl program to demonstrate 
# negative index of array
  
# Creation an array fruits
@fruits = ("apple", "banana", "pineapple", "kiwi");
  
# Prints the array's elements
# one by one using negative index
print "$fruits[-1]\n";
print "$fruits[-2]\n";

chevron_right


Output:

kiwi
pineapple

Sequential Number Arrays: Perl also provides a shortcut to make a sequential array of numbers or letters. It makes out the user’s task easy. Using sequential number arrays user can skip out loops and typing each element when counting to 1000 or letters A to Z etc.

Example:

@array = (1..9); # array with numbers from 1 to 9
@array = (a..h); # array with letters from a to h

Program:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Perl program to demonstrate
# Sequential Number Arrays
  
# Sequential Number Arrays for 
# numbers and letters
@nums = (1..9);
@letters = (a..h);
  
# Prints array- nums
print "@nums\n"
  
# Prints array- letters
print "@letters\n";  

chevron_right


Output:

1 2 3 4 5 6 7 8 9
a b c d e f g h

Size of an Array: The size of an array(physical size of the array) can be found by evaluating the array in scalar context. The returned value will be the number of elements in the array. An array can be evaluated in scalar context using two ways:

  1. Implicit Scalar Context
    $size = @array;
  2. Explicit scalar context using keyword scalar
    $size = scalar @array;

Both the ways will produce the same output so it is preferred to use implicit scalar context.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Perl program to demonstrate 
# the length of an array
  
# declaring an array
@arr = (11, 22, 33, 44, 55, 66);
  
# Storing the length of array 
# in variable imp_size
# implicit scalar context
$imp_size = @arr;
  
# Storing the length of array
# in variable exp_size
# explicit scalar context
$exp_size = scalar @arr;
  
print "Size of arr(imp_size) $imp_size\n";
print "Size of arr(exp_size) $exp_size";

chevron_right


Output:

Size of arr(imp_size) 6
Size of arr(exp_size) 6

Note: In Perl arrays, the size of an array is always equal to (maximum_index + 1) i.e.

size = maximum_index + 1

And you can find the maximum index of array by using $#array. So @array and scalar @array is always used to find the size of an array.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Perl program to find size and 
# maximum index of an array
  
#!/usr/bin/perl
  
# Array declaration and 
# assigning values to it
@arr = (10, 17, 19, 20, 25);
  
# to find size of array
$size_of_array = @arr;
  
# to find Maximum index of array
$maximum_index = $#arr;
  
# displaying result
print "Maximum Index of the Array: $maximum_index\n";
print "The Size of the Array:  $size_of_array\n";

chevron_right


Output:

Maximum Index of the Array: 4
The Size of the Array:  5

Iterating through an Array: We can iterate in an array using two ways:

  • Iterating through the range: We can iterate through the range by finding the size of an array and then running a for loop from 0 to the size – 1 and then accessing the elements of the array.

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Perl program to illustrate 
    # iteration through range
      
    # array creation
    @arr = (11, 22, 33, 44, 55);
      
    # size of array
    $len = @arr;
      
    for ($b = 0; $b < $len; $b = $b + 1)
    {
        print "\@arr[$b] = $arr[$b]\n";
    }

    chevron_right

    
    

    Output:

    @arr[0] = 11
    @arr[1] = 22
    @arr[2] = 33
    @arr[3] = 44
    @arr[4] = 55
    
  • Iterating through elements(foreach Loop): We can iterate through the elements using foreach loop. Using this we can directly access the elements of the array using a loop instead of running a loop over its range and then accessing the elements.

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # Perl program to illustrate Iterating 
    # through elements(foreach Loop)
      
    # creating array
    @l = (11, 22, 33, 44, 55);
      
    # foreach loop
    foreach $a (@l)
    {
          print "$a ";
    }

    chevron_right

    
    

    Output:

    11 22 33 44 55
    


My Personal Notes arrow_drop_up

Appsecco | Web developer | IEEE | GeeksforGeeks Intern | Aspiring Cyber Security Specialist | Camcann Visit https//ashwingoelcom

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.





Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.