Em Perl, array é um tipo especial de variável. A array é usada para armazenar a lista de valores e cada objeto da lista é denominado como um elemento. Os elementos podem ser um número, string ou qualquer tipo de dado escalar, incluindo outra variável.
arrayes
 
Exemplo:

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

Criação de array: Na programação Perl, cada variável de array é declarada usando o sinal “@” antes do nome da variável. Uma única array também pode armazenar elementos de vários tipos de dados. Por exemplo:

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

Criação de array usando a função qw: a função
qw() é a maneira mais fácil de criar um array de palavras entre aspas simples. Ele pega uma expressão como entrada e extrai as palavras separadas por um espaço em branco e, em seguida, retorna uma lista dessas palavras. A melhor coisa é que a expressão pode ser cercada por qualquer delimitador como-() ”[] {} // etc. No entanto() e // são usados ​​geralmente.

Sintaxe:

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

Exemplo :

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

Saída:

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

Acessando os Elementos do Array: Para acessar os elementos de um array, devemos prefixar o sinal “$” antes do nome da variável do array seguido pelo índice entre colchetes. Por exemplo:

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

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

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

Exemplo:

# Perl program to demonstrate Array's
# creation and accessing the 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";

Saída:

apple banana pineapple kiwi
apple
banana
pineapple
kiwi

Observação: os índices de array sempre começam do zero. Para acessar o primeiro elemento deve-se dar 0 como índices. Também podemos dar um índice negativo . Mas fornecer um índice negativo resultará na seleção dos elementos da array do final, não do início.

Exemplo:

# 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";

Saída:

kiwi
pineapple

Arrayes de números sequenciais: Perl também fornece um atalho para criar uma array sequencial de números ou letras. Facilita a tarefa do usuário. Usando arrayes de números sequenciais, os usuários podem pular loops e digitar cada elemento ao contar até 1000 ou letras de A a Z etc.

Exemplo:

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

Programa:

# 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";  

Saída:

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

Tamanho de um array: O tamanho de um array (tamanho físico do array) pode ser encontrado avaliando o array no contexto escalar. O valor retornado será o número de elementos na array. Uma array pode ser avaliada em contexto escalar de duas maneiras:

  1. Contexto escalar implícito
    $size = @array;
  2. Contexto escalar explícito usando escalar de palavra-chave
    $size = escalar @array;

Ambas as maneiras produzirão a mesma saída, portanto, é preferível usar um contexto escalar implícito.

Exemplo:

# 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";

Saída:

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

Nota: Em arrayes Perl, o tamanho de uma array é sempre igual a (índice_máximo + 1), ou seja

size = maximum_index + 1

E você pode encontrar o índice máximo de array usando $# array . Portanto, @array e escalar @array são sempre usados ​​para encontrar o tamanho de um array.

Exemplo:

# 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";

Saída:

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

Iterando por meio de uma array: podemos iterar em uma array de duas maneiras:

  • Iterando pelo intervalo: podemos iterar pelo intervalo encontrando o tamanho de um array e, em seguida, executando um loop for de 0 ao tamanho - 1 e acessando os elementos do array.

    Exemplo:




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

    Saída:

    @arr [0] = 11
    @arr [1] = 22
    @arr [2] = 33
    @arr [3] = 44
    @arr [4] = 55
    
  • Iterando por meio de elementos (loop foreach): Podemos iterar através dos elementos usando loop foreach. Usando isso, podemos acessar diretamente os elementos do array usando um loop em vez de executar um loop em seu intervalo e, em seguida, acessar os elementos.

    Exemplo:




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

    Saída:

    11 22 33 44 55