Perl é uma linguagem de programação dinâmica e interpretada de alto nível de uso geral. No nível inicial, Perl foi desenvolvido apenas para gerenciamento de sistema e manipulação de texto, mas em versões posteriores, Perl obteve a capacidade de lidar com expressões regulares e sockets de rede, etc. Atualmente, Perl é popular por sua capacidade de lidar com Regex (Expressões Regulares ) A primeira versão do Perl foi 1.0, lançada em 18 de dezembro de 1987. Perl 6 é diferente do Perl 5 porque é uma reimplementação totalmente orientada a objetos do Perl 5.

perl-Tutorial

Tópicos:

Características principais

Perl tem muitos motivos para ser popular e procurado. Alguns dos motivos são mencionados abaixo:

  • Fácil de começar: Perl é uma linguagem de alto nível, por isso está mais próxima de outras linguagens de programação populares como C , C++ e, portanto, torna-se fácil de aprender para qualquer pessoa.
  • Processamento de texto: Como a sigla “Practical Extraction and Reporting Language” sugere que o Perl tem alta capacidade de manipulação de texto, pelo que pode gerar relatórios de diferentes arquivos de texto facilmente.
  • Melhores recursos contidos: Perl contém os recursos de diferentes linguagens como C , sed, awk e sh, etc. o que torna o Perl mais útil e produtivo.
  • Administração do sistema: Perl torna a tarefa de administração do sistema muito fácil. Em vez de se tornar dependente de muitos idiomas, apenas use Perl para concluir toda a tarefa de administração do sistema.
  • Web e Perl: Perl pode ser embutido em servidores web para aumentar seu poder de processamento e possui o pacote DBI, que torna a integração web-banco de dados muito fácil.

Áreas de aplicação

Application-Areas-In-Perl

<style>.perl-table{border-collapse:collapse;width:100%}.perl-table td{border:1px solid #5fb962;text-align:left!important;padding:8px}.perl-table th{border:1px solid #5fb962;padding:8px}.perl-table tr>th{background-color:#c6ebd9;vertical-align:middle}.perl-table tr:nth-child(odd){background-color:#fff}</style>

Por que e por que não usar Perl?

POR QUE USAR PERL?O QUE HÁ DE ERRADO COM O PERL?
Perl fornece suporte para plataforma cruzada e é compatível com linguagens de marcação como HTML, XML etc.Perl não suporta portabilidade devido aos módulos CPAN.
É gratuito e um software de código aberto licenciado sob Artistic e GNU General Public License (GPL).Os programas são executados lentamente e precisam ser interpretados sempre que forem feitas alterações.
É uma linguagem embutida, por isso pode ser embutida em servidores web e servidores de banco de dados.Em Perl, o mesmo resultado pode ser alcançado de várias maneiras diferentes, o que torna o código desordenado e ilegível.
É muito eficiente na manipulação de texto, ou seja, Expressão Regular. Ele também fornece a capacidade de soquete.O fator de usabilidade é menor quando comparado a outras linguagens.

Primeiros passos com Perl

Como o Perl é muito semelhante a outras linguagens amplamente utilizadas sintaticamente, é mais fácil codificar e aprender em Perl. Os programas Perl podem ser escritos em qualquer editor de texto simples, como notepad, notepad ++ ou qualquer coisa desse tipo. Também é possível usar um IDE online para escrever códigos Perl ou mesmo instalar um em seu sistema para tornar mais viável escrever esses códigos porque os IDEs fornecem muitos recursos como editor de código intuitivo, depurador, compilador, etc.
Para começar, escrevendo códigos Perl e realizando várias operações intrigantes e úteis, é necessário ter o Perl instalado em seu sistema. Isso pode ser feito seguindo as instruções passo a passo fornecidas abaixo:

E se o Perl já existir ?? Vamos checar!!!

Muitos aplicativos de software hoje em dia requerem Perl para executar suas operações, portanto, uma versão do Perl pode ser incluída no pacote de instalação do software. Muitos sistemas Linux têm Perl pré-instalado, e também o Macintosh fornece um Perl pré-instalado com seus sistemas.

Para verificar se o seu dispositivo está pré-instalado com Perl ou não, basta ir para a linha de comando (para Windows , procure cmd na caixa de diálogo Executar (<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet"/> + R ), para Linux abra o terminal usando Ctrl+Alt+T, para uso MacOSControl+Option+Shift+T )
Agora execute o seguinte comando:

perl -v

Se o Perl já estiver instalado, irá gerar uma mensagem com todos os detalhes da versão do Perl disponível, caso contrário, se o Perl não estiver instalado, irá surgir um erro informando Comando incorreto ou nome do arquivo
versão perl

Baixando e instalando Perl:

Antes de iniciar o processo de instalação, você precisa fazer o download. Para isso, todas as versões do Perl para Windows, Linux e MacOS estão disponíveis em perl.org
perl-download
Baixe o Perl e siga as instruções de instalação do Perl.

Começando com a instalação:

janelas

  • Começando:
    perl-windows-setup-1
  • Concluindo com o Contrato de Licença do Usuário:
    perl-windows-setup-2
  • Escolhendo o que instalar:
    perl-windows-setup-3
  • Processo de instalação:
    perl-windows-setup-4
  • Instalação concluída:
    perl-windows-setup-4.5

Linux

  • Alterando o diretório para instalar o Perl:
    perl-ubuntu-setup-1
  • Iniciando o processo de instalação:
    perl-ubuntu-setup-2
  • Escolhendo o diretório para instalar o Perl:
    perl-ubuntu-setup-3
  • Concluindo a instalação:
    perl-ubuntu-setup-4

Mac OS

  • Começando:
    perl-MacOS-setup-1
  • Concluindo com o Contrato de Licença do Usuário:
    perl-MacOS-setup-2
    perl-MacOS-setup-3
  • Escolha do local de instalação:
    perl-MacOS-setup-4
  • Processo de instalação:
    perl-MacOS-setup-5
  • Terminando a instalação:
    perl-MacOS-setup-6

Como executar um programa Perl?

Vamos considerar um programa simples Hello World.

#!/usr/bin/perl 
    
# Modules used 
use strict; 
use warnings; 
    
# Print function  
print("Hello World\n"); 

Geralmente, existem duas maneiras de executar um programa Perl-

  • Usando IDEs online : Você pode usar vários IDEs online que podem ser usados ​​para executar programas Perl sem instalação.
  • Usando linha de comando: Você também pode usar opções de linha de comando para executar um programa Perl. As etapas abaixo demonstram como executar um programa Perl na linha de comando no sistema operacional Windows / Unix:
     
    janelas

    Abra Commandline e, em seguida, para compilar o tipo de código perl HelloWorld.pl . Se o seu código não tiver nenhum erro, ele será executado corretamente e a saída será exibida.
    Hello-World-windows

    Unix / Linux

    Abra o Terminal do seu sistema operacional Unix / Linux e, em seguida, para compilar o tipo de código perl hello.pl . Se o seu código não tiver nenhum erro, ele será executado corretamente e a saída será exibida.
    Hello-World-Unix

Fundamentos de Perl

Variáveis

Variáveis são palavras definidas pelo usuário que são usadas para conter os valores passados ​​para o programa que serão usados ​​para avaliar o Código. Cada programa Perl contém valores nos quais o Código executa suas operações. Esses valores não podem ser manipulados ou armazenados sem o uso de uma variável. Um valor pode ser processado apenas se for armazenado em uma variável, usando o nome da variável.
Um valor são os dados passados ​​ao programa para realizar operações de manipulação. Esses dados podem ser números, strings, caracteres, listas, etc.
Exemplo:

Values: 
5
geeks
15

Variables:
$a = 5;
$b = "geeks";
$c = 15;

Operadores

Os operadores são o bloco de construção principal de qualquer linguagem de programação. Os operadores permitem que o programador execute diferentes tipos de operações em operandos. Esses operadores podem ser categorizados com base em suas diferentes funcionalidades:

# Perl Program to illustrate the Operators 
    
# Operands 
$a = 10; 
$b = 4; 
$c = true;
$d = false;
    
# using airthmetic operators  
print "Addition is: ", $a + $b, "\n"; 
print "Subtraction is: ", $a - $b, "\n" ; 
  
# using Relational Operators 
if ($a == $b) 
{ 
   print "Equal To Operator is True\n"; 
}  
else 
{ 
   print "Equal To Operator is False\n"; 
} 
  
# using Logical Operator 'AND'
$result = $a && $b; 
print "AND Operator: ", $result, "\n"; 
  
# using Bitwise AND Operator 
$result = $a & $b; 
print "Bitwise AND: ", $result, "\n"; 
  
# using Assignment Operators 
print "Addition Assignment Operator: ", $a += $b, "\n"; 
Saída:
A adição é: 14
A subtração é: 6
Igual ao operador é falso
E Operador: 4
AND bit a bit: 0
Operador de Atribuição de Adição: 14

Número e seus tipos

Um número em Perl é um objeto matemático usado para contar, medir e realizar várias operações matemáticas. Um símbolo de notação que representa um número é denominado numeral. Esses numerais, além de seu uso em operações matemáticas, também são usados ​​para ordenação (na forma de números de série).

Tipos de números:

  • Inteiros
  • Números Flutuantes
  • Números Hexadecimais
  • Números octais
  • Números Binários
#!/usr/bin/perl
  
# Perl program to illustrate
# the use of numbers
  
# Integer 
$a = 20; 
  
# Floating Number 
$b = 20.5647; 
  
# Scientific value 
$c = 123.5e-10; 
  
# Hexadecimal Number 
$d = 0xc; 
  
# Octal Number 
$e = 074; 
  
# Binary Number 
$f = 0b1010; 
  
# Printing these values 
print("Integer: ", $a, "\n");
print("Float Number: ", $b, "\n"); 
print("Scientific Number: ", $c, "\n"); 
print("Hex Number: ", $d, "\n"); 
print("Octal number: ", $e, "\n"); 
print("Binary Number: ", $f, "\n"); 
Saída:
Inteiro: 20
Número flutuante: 20.5647
Número científico: 1.235e-08
Número Hex: 12
Número octal: 60
Número Binário: 10

Para saber mais sobre números, consulte Números em Perl

Tipos de dados

Os tipos de dados especificam o tipo de dados que uma variável Perl válida pode conter. Perl é uma linguagem vagamente tipada. Não há necessidade de especificar um tipo para os dados ao usá-los no programa Perl. O interpretador Perl escolherá o tipo com base no contexto dos próprios dados.

Data-Types-In-Perl

Escalares

É uma única unidade de dados que pode ser um número inteiro, ponto flutuante, um caractere, uma string, um parágrafo ou uma página da web inteira.

Exemplo:

# Perl program to demonstrate  
# scalars variables 
  
# a string scalar 
$name = "Alex"; 
    
# Integer Scalar 
$rollno = 13; 
    
# a floating point scalar 
$percentage = 87.65; 
  
# In hexadecimal form 
$hexadec = 0xcd; 
  
# Alphanumeric String
$alphanumeric = "gfg21"; 
  
# special character in string scalar 
$specialstring = "^gfg"; 
  
# to display the result 
print "Name = $name\n"; 
print "Roll number = $rollno\n"; 
print "Percentage = $percentage\n"; 
print "Hexadecimal Form = $hexadec\n"; 
print "String with alphanumeric values = $alphanumeric\n"; 
print "String with special characters = $specialstring\n";
Saída:
Nome = Alex
Número do rolo = 13
Porcentagem = 87,65
Forma Hexadecimal = 205
String com valores alfanuméricos = gfg21
String com caracteres especiais = ^ gfg

Para saber mais sobre escalares, consulte Escalares em Perl .

Arrayes

Uma array é uma variável que armazena o valor do mesmo tipo de dados na forma de uma lista. Para declarar um array em Perl, usamos o sinal '@' na frente do nome da variável.

@number = (40, 55, 63, 17, 22, 68, 89, 97, 89)

Ele criará uma array de inteiros que contém os valores 40, 55, 63, 17 e muitos mais. Para acessar um único elemento de um array, usamos o sinal '$'.

$number[0]

Ele produzirá a saída de 40.

Criação de array e elementos de acesso:

#!/usr/bin/perl
  
# Perl Program for array creation
# and accessing its elements
  
# Define an array
@arr1 = (1, 2, 3, 4, 5);
  
# using qw function 
@arr2 = qw /This is a Perl Tutorial by GeeksforGeeks/; 
  
# Accessing array elements
print "Elements of arr1 are:\n"; 
print "$arr1[0]\n";
print "$arr1[3]\n";
  
# Accessing array elements
# with negative index
print "\nElements of arr2 are:\n"; 
print "$arr2[-1]\n";
print "$arr2[-3]\n";
Saída:
Os elementos de arr1 são:
1
4

Os elementos de arr2 são:
GeeksforGeeks
Tutorial

Iterando por meio de uma array:

#!/usr/bin/perl
  
# Perl program to illustrate  
# iteration through an array
  
# array creation 
@arr = (11, 22, 33, 44, 55);
  
# Iterating through the range
print("Iterating through range:\n");
  
# size of array 
$len = @arr; 
    
for ($b = 0; $b < $len; $b = $b + 1) 
{ 
    print "\@arr[$b] = $arr[$b]\n"; 
} 
  
# Iterating through loops
print("\nIterating through loops:\n");
  
# foreach loop 
foreach $a (@arr) 
{ 
    print "$a "; 
} 
Saída:
Iterando através do intervalo:
@arr [0] = 11
@arr [1] = 22
@arr [2] = 33
@arr [3] = 44
@arr [4] = 55

Iterando por meio de loops:
11 22 33 44 55

Para saber mais sobre arrays, consulte Arrays em Perl

Hashes (arrayes associativas)

É um conjunto de pares de valores-chave. Também é denominado como Arrayes Associativas. Para declarar um hash em Perl, usamos o sinal '%'. Para acessar o valor particular, usamos o símbolo '$' que é seguido pela chave entre colchetes.

Hash-in-Perl

Criação e acesso a elementos Hash:

#!/usr/bin/perl
  
# Perl Program for Hash creation
# and accessing its elements
  
# Initializing Hash by 
# directly assigning values 
$Fruit{'Mango'} = 10; 
$Fruit{'Apple'} = 20; 
$Fruit{'Strawberry'} = 30; 
  
# printing elements of Hash
print "Printing values of Hash:\n"; 
print "$Fruit{'Mango'}\n"; 
print "$Fruit{'Apple'}\n"; 
print "$Fruit{'Strawberry'}\n"; 
  
# Initializing Hash using '=>' 
%Fruit2 = ('Mango' => 45, 'Apple' => 42, 'Strawberry' => 35); 
  
# printing elements of Fruit2
print "\nPrinting values of Hash:\n"; 
print "$Fruit2{'Mango'}\n"; 
print "$Fruit2{'Apple'}\n"; 
print "$Fruit2{'Strawberry'}\n"; 
Saída:
Imprimindo valores de Hash:
10
20
30

Imprimindo valores de Hash:
45
42
35

Para saber mais sobre Hashes, consulte Hashes em Perl

Cordas

Uma string em Perl é uma variável escalar e começa com um sinal ($) e pode conter alfabetos, números, caracteres especiais. A string pode consistir em uma única palavra, um grupo de palavras ou um parágrafo de várias linhas. A String é definida pelo usuário entre aspas simples (') ou aspas duplas (“).

#!/usr/bin/perl
  
# An array of integers from 1 to 10 
@list = (1..10);  
    
# Non-interpolated string 
$strng1 = 'Using Single quotes: @list';  
    
# Interpolated string 
$strng2 = "Using Double-quotes: @list"; 
print("$strng1\n$strng2"); 
Saída:
Usando aspas simples: @list
Usando aspas duplas: 1 2 3 4 5 6 7 8 9 10

Usando o caractere Escape em Strings:

A interpolação cria um problema para strings que contêm símbolos que podem se tornar inúteis após a interpolação. Por exemplo, quando um endereço de e-mail deve ser armazenado em uma string entre aspas duplas, o sinal 'arroba' (@) é interpolado automaticamente e é considerado o início do nome de uma array e é substituído por ele. Para superar essa situação, o caractere de escape, ou seja, a barra invertida (\), é usado. A barra invertida é inserida logo antes de '@' conforme mostrado abaixo:

#!/usr/bin/perl
  
# Assigning a variable with an email  
# address using double-quotes 
  
# String without an escape sequence 
$email = "GeeksforGeeks0402@gmail.com";  
    
# Printing the interpolated string 
print("$email\n"); 
    
# Using '' to escape the  
# interpolation of '@' 
$email = "GeeksforGeeks0402\@gmail.com";  
    
# Printing the interpolated string 
print($email); 
Saída:
GeeksforGeeks0402.com
GeeksforGeeks0402@gmail.com

Escapando do caractere de escape:

A barra invertida é o caractere de escape e é usada para fazer uso de sequências de escape. Quando houver necessidade de inserir o caractere de escape em uma string interpolada, a mesma barra invertida é usada, para escapar da substituição do caractere de escape por ”(espaço em branco). Isso permite o uso de caracteres de escape na string interpolada.

#!/usr/bin/perl 
    
# Using Two escape characters to avoid 
# the substitution of escape(\) with blank 
$string1 = "Using the escape(\\) character";  
    
# Printing the Interpolated string 
print($string1); 
Saída:
Usando o caractere de escape (\)

Para saber mais sobre Strings, consulte Strings em Perl

Controle de fluxo

Tomando uma decisão

A tomada de decisão na programação é semelhante à tomada de decisão na vida real. Uma linguagem de programação usa instruções de controle para controlar o fluxo de execução do programa com base em certas condições. Eles são usados ​​para fazer com que o fluxo de execução avance e se ramifique com base nas alterações no estado de um programa.

Declarações de tomada de decisão em Perl:

Exemplo 1: Para ilustrar o uso de if e if-else

#!/usr/bin/perl
  
# Perl program to illustrate 
# Decision-Making statements
  
$a = 10;  
$b = 15;
  
# if condition to check 
# for even number 
if($a % 2 == 0 ) 
{  
    printf "Even Number";  
}  
  
# if-else condition to check 
# for even number or odd number
if($b % 2 == 0 ) 
{  
    printf "\nEven Number";  
}  
else
{    
    printf "\nOdd Number";  
} 
Saída:
Numero par
Número ímpar

Exemplo 2: Para ilustrar o uso de Nested-if

#!/usr/bin/perl
  
# Perl program to illustrate  
# Nested if statement 
    
$a = 10; 
      
if($a % 2 == 0) 
{  
    # Nested - if statement 
    # Will only be executed  
    # if above if statement 
    # is true 
    if($a % 5 == 0) 
    {   
        printf "Number is divisible by 2 and 5\n";   
    }  
} 
Saída:
O número é divisível por 2 e 5

Para saber mais sobre Tomada de Decisão, consulte Tomada de Decisão em Perl

rotações

O loop em linguagens de programação é um recurso que facilita a execução de um conjunto de instruções ou funções repetidamente enquanto alguma condição é avaliada como verdadeira. Os loops tornam a tarefa do programador mais simples. Perl fornece os diferentes tipos de loop para lidar com a situação baseada em condições no programa. Os loops em Perl são:

  • para loop




    #!/usr/bin/perl
      
    # Perl program to illustrate 
    # the use of for Loop
      
    # for loop 
    print("For Loop:\n");
    for ($count = 1 ; $count <= 3 ; $count++) 
        print "GeeksForGeeks\n"
    }
    Saída:
    For Loop:
    GeeksForGeeks
    GeeksForGeeks
    GeeksForGeeks
    
  • loop foreach




    #!/usr/bin/perl
      
    # Perl program to illustrate 
    # the use of foreach Loop
      
    # Array 
    @data = ('GEEKS', 4, 'GEEKS'); 
      
    # foreach loop 
    print("For-each Loop:\n");
    foreach $word (@data
        print ("$word ");
    Saída:
    For-each Loop:
    GEEKS 4 GEEKS
    
  • enquanto e faz…. enquanto ciclo




    #!/usr/bin/perl
      
    # Perl program to illustrate 
    # the use of foreach Loop
      
    # while loop 
    $count = 3; 
      
    print("While Loop:\n");
    while ($count >= 0) 
        $count = $count - 1; 
        print "GeeksForGeeks\n"
      
    print("\ndo...while Loop:\n");
    $a = 10; 
        
    # do..While loop 
    do
        
        print "$a "
        $a = $a - 1; 
    } while ($a > 0); 
    Saída:
    Loop While:
    GeeksForGeeks
    GeeksForGeeks
    GeeksForGeeks
    GeeksForGeeks
    
    fazer ... enquanto Loop:
    10 9 8 7 6 5 4 3 2 1
    

Para saber mais sobre Loops, consulte Loops em Perl

Programação Orientada a Objetos

A programação orientada a objetos visa implementar entidades do mundo real, como herança, ocultação, polimorfismo, etc. na programação. O objetivo principal do OOP é vincular os dados e as funções que operam neles de forma que nenhuma outra parte do código possa acessar esses dados, exceto aquela função.

OOPs-Concepts-In-Perl

Criação de um Classe e umObjeto :

#!/usr/bin/perl
  
# Perl Program for creation of a
# Class and its object
use strict; 
use warnings; 
    
package student; 
    
# constructor 
sub student_data 
{ 
    
    # shift will take package name 'student'  
    # and assign it to variable 'class' 
    my $class_name = shift; 
    my $self = { 
                'StudentFirstName' => shift, 
                'StudentLastName' => shift
               }; 
    # Using bless function 
    bless $self, $class_name; 
        
    # returning object from constructor 
    return $self; 
} 
    
# Object creating and constructor calling 
my $Data = student_data student("Geeks", "forGeeks"); 
    
# Printing the data 
print "$Data->{'StudentFirstName'}\n"; 
print "$Data->{'StudentLastName'}\n"; 
Saída:
Geeks
forGeeks

Métodos : -
Métodos são as entidades usadas para acessar e modificar os dados de um objeto. Um método é uma coleção de instruções que executam alguma tarefa específica e retorna um resultado para o chamador. Um método pode realizar alguma tarefa específica sem retornar nada. Os métodos economizam tempo e nos ajudam a reutilizar o código sem redigitá-lo.

sub Student_data 
{  
    my $self = shift;  
          
    # Calculating the result  
    my $result = $self->{'Marks_obtained'} /  
                 $self->{'Total_marks'};  
                       
    print "Marks scored by the student are: $result";  
}  

O método fornecido acima pode ser chamado repetidamente sempre que necessário, sem o esforço de redigitar o código.
Para aprender mais sobre métodos, consulte Métodos em Perl

Polimorfismo : -
Polimorfismo refere-se à capacidade das linguagens de programação OOPs de diferenciar entre entidades com o mesmo nome de forma eficiente. Isso é feito por Perl com a ajuda da assinatura e declaração dessas entidades.
 
O polimorfismo pode ser melhor explicado com a ajuda do seguinte exemplo:

use warnings;
   
# Creating class using package
package A;
sub poly_example
{
   print("This corresponds to class A\n");
}
   
package B;
sub poly_example
{
  print("This corresponds to class B\n");
}
  
B->poly_example();
A->poly_example();

Saída:
Polimorfismo em Perl

Para saber mais sobre polimorfismo, consulte Polimorfismo em Perl

Herança : -
Herança é a capacidade de qualquer classe de extrair e usar recursos de outras classes. É o processo pelo qual novas classes chamadas classes derivadas são criadas a partir de classes existentes chamadas classes base.
A herança em Perl pode ser implementada com o uso de pacotes . Os pacotes são usados ​​para criar uma classe pai que pode ser usada nas classes derivadas para herdar as funcionalidades.
Para saber mais sobre Herança, consulte Herança em Perl

Encapsulamento : -
Encapsulamento é o processo de agrupamento de dados para protegê-los de fontes externas que não precisam ter acesso a essa parte do código. Tecnicamente no encapsulamento, as variáveis ​​ou dados de uma classe são ocultados de qualquer outra classe e podem ser acessados ​​apenas por meio de qualquer função-membro da própria classe na qual são declarados. Este processo também é denominado Ocultação de dados .
Para saber mais sobre encapsulamento, consulte Encapsulamento em Perl

Abstração : -
Abstração é o processo pelo qual o usuário obtém acesso apenas aos detalhes essenciais de um programa e a parte trivial é escondida do usuário. Ex: um carro é visto como um carro ao invés de seus componentes individuais. O usuário só pode saber o que está sendo feito, mas não a parte de como está sendo feito. Isso é abstração.
Para saber mais sobre Abstração, consulte Abstração em Perl

Sub-rotinas

O que são subrotinas?

Uma função ou sub-rotina Perl é um grupo de instruções que, juntas, executam uma tarefa específica. Em cada linguagem de programação o usuário deseja reutilizar o código. Assim, o usuário coloca a seção de código em função ou sub-rotina para que não haja necessidade de escrever código repetidamente.
Exemplo:

#!/usr/bin/perl
  
# Perl Program to demonstrate the  
# subroutine declaration and calling 
  
# defining subroutine 
sub ask_user
{ 
    print "Hello Geeks!\n"; 
} 
    
# calling subroutine 
# you can also use 
# &ask_user(); 
ask_user(); 
Saída:
Hello Geeks!

Múltiplas sub-rotinas

Múltiplas sub-rotinas em Perl podem ser criadas usando a palavra-chave 'multi'. Isso ajuda na criação de várias sub-rotinas com o mesmo nome.
Exemplo:

multi Func1($var){statement};
multi Func1($var1, $var2){statement1; statement2;}

Exemplo:

#!/usr/bin/perl 
# Program to print factorial of a number 
    
# Factorial of 0 
multi Factorial(0) 
{ 
    1; # returning 1 
} 
    
# Recursive Function  
# to calculate Factorial 
multi Factorial(Int $n where $n > 0) 
{ 
    $n * Factorial($n - 1); # Recursive Call 
} 
    
# Printing the result  
# using Function Call 
print Factorial(15); 

Saída:

3628800

Para saber mais sobre sub-rotinas múltiplas, consulte Multiple sub-rotinas em Perl

Módulos e Pacotes

Um módulo em Perl é uma coleção de sub-rotinas e variáveis ​​relacionadas que realizam um conjunto de tarefas de programação. Módulos Perl são reutilizáveis. Módulo Perl é um pacote definido em um arquivo com o mesmo nome do pacote e com extensão .pm. Um pacote Perl é uma coleção de código que reside em seu próprio namespace.
Para importar um módulo, usamos as funções require ou use. Para acessar uma função ou variável de um módulo,::é usado.

Exemplos:

#!/usr/bin/perl
  
# Using the Package 'Calculator'
use Calculator;
  
print "Enter two numbers to multiply";
  
# Defining values to the variables
$a = 5;
$b = 10;
  
# Subroutine call
Calculator::multiplication($a, $b);
  
print "\nEnter two numbers to divide";
  
# Defining values to the variables
$a = 45;
$b = 5;
  
# Subroutine call
Calculator::division($a, $b);

Saída:
Módulos-em-Perl

Referências

Uma referência em Perl é um tipo de dados escalar que contém a localização de outra variável. Outra variável pode ser escalar, hashes, arrays, nomes de funções, etc. Uma referência pode ser criada prefixando-a com uma barra invertida.
Exemplo:

# Perl program to illustrate the  
# Referencing and Dereferencing 
# of an Array 
    
# defining an array 
@array = ('1', '2', '3');   
    
# making an reference to an array variable 
$reference_array = \@array;   
    
# Dereferencing 
# printing the value stored  
# at $reference_array by prefixing  
# @ as it is a array reference 
print @$reference_array;     
Saída:
123

Para saber mais sobre as referências, consulte as Referências em Perl

Expressão regular

Expressão regular (Regex ou Regexp ou RE) em Perl é uma string de texto especial para descrever um padrão de pesquisa em um determinado texto. Regex em Perl está vinculado à linguagem hospedeira e não é o mesmo que em PHP, Python, etc.
Principalmente os operadores de ligação são usados ​​com o operador m // para que o padrão requerido possa ser correspondido.

Exemplo:

# Perl program to demonstrate 
# the m// and =~ operators 
    
# Actual String 
$a = "GEEKSFORGEEKS"; 
    
# Prints match found if  
# its found in $a 
if ($a =~ m[GEEKS])  
{ 
    print "Match Found\n"; 
} 
    
# Prints match not found  
# if its not found in $a 
else 
{ 
    print "Match Not Found\n"; 
} 
Saída:
Combinação encontrada

Saída:

Match Found

Quantificadores em Regex

Perl fornece vários números de quantificadores de expressão regular que são usados ​​para especificar quantas vezes um determinado caractere pode ser repetido antes que a correspondência seja feita. Isso é usado principalmente quando o número de caracteres a serem correspondidos é desconhecido.
Existem seis tipos de quantificadores Perl que são fornecidos abaixo:

  • * = Isso diz que o componente deve estar presente zero ou mais vezes.
  • + = Isso diz que o componente deve estar presente uma ou mais vezes.
  • ? = Isso diz que o componente deve estar presente zero ou uma vez.
  • {n} = Isso diz que o componente deve estar presente n vezes.
  • {n,} = Isso diz que o componente deve estar presente pelo menos n vezes.
  • {n, m} = Isso diz que o componente deve estar presente pelo menos n vezes e não mais do que m vezes.

Manipulação de arquivos

Em Perl, um FileHandle associa um nome a um arquivo externo, que pode ser usado até o final do programa ou até que o FileHandle seja fechado. Resumindo, um FileHandle é como uma conexão que pode ser usada para modificar o conteúdo de um arquivo externo e um nome é dado à conexão (o FileHandle) para acesso mais rápido e fácil.
Os três FileHandles básicos em Perl são STDIN, STDOUT e STDERR, que representam dispositivos de entrada padrão, saída padrão e erro padrão, respectivamente.

Ler e gravar em um arquivo usando FileHandle

A leitura de um FileHandle pode ser feita por meio da função de impressão.

# Opening the file  
open(fh, "GFG2.txt") or die "File '$filename' can't be opened"; 
    
# Reading First line from the file 
$firstline = <fh>; 
print "$firstline\n"; 

Saída :
Lendo um arquivo em Perl

A gravação em um arquivo também pode ser feita por meio da função de impressão.

# Opening file Hello.txt in write mode
open (fh, ">", "Hello.txt");
  
# Getting the string to be written
# to the file from the user
print "Enter the content to be added\n";
$a = <>;
  
# Writing to the file
print fh $a;
  
# Closing the file
close(fh) or "Couldn't close the file"; 

Executando código para gravar:
Escrevendo um arquivo em Perl
Arquivo atualizado:
Arquivo atualizado

Operações básicas em arquivos
Várias operações podem ser realizadas em arquivos usando FileHandles. Estes são:

Operadores de teste de arquivo

Operadores de teste de arquivo em Perl são os operadores lógicos que retornam valores True ou False. Existem muitos operadores em Perl que você pode usar para testar vários aspectos diferentes de um arquivo. Por exemplo, para verificar a existência de um operador file -e é usado.
O exemplo a seguir usa o operador de existência '-e' para verificar se um arquivo existe ou não:

#!/usr/bin/perl
  
# Using predefined modules
use warnings;
use strict;
   
# Providing path of file to a variable
my $filename = 'C:\Users\GeeksForGeeks\GFG.txt';
  
# Checking for the file existence
if(-e $filename)
{
      
    # If File exists
    print("File $filename exists\n");
}
  
else
{
      
    # If File doesn't exists
    print("File $filename does not exists\n");
}

Saída:
e-operator-in-Perl

Para saber mais sobre vários operadores diferentes em teste de arquivo, consulte Operadores de teste de arquivo em Perl

Trabalho com arquivos do Excel

Os arquivos do Excel são os aplicativos de escritório mais comumente usados ​​para se comunicar com computadores. Para criar arquivos Excel com Perl, você pode usar o IDE padre, também usaremos o módulo Excel::Writer::XLSX.
Perl usa a função write() para adicionar conteúdo ao arquivo excel.

Criando um arquivo Excel: Os
arquivos Excel podem ser criados usando a linha de comando Perl, mas primeiro precisamos carregar o módulo Excel::Writer::XLSX.

#!/usr/bin/perl 
use Excel::Writer::XLSX;
  
my $Excelbook = Excel::Writer::XLSX->new( 'GFG_Sample.xlsx' );
my $Excelsheet = $Excelbook->add_worksheet();
  
$Excelsheet->write( "A1", "Hello!" );
$Excelsheet->write( "A2", "GeeksForGeeks" );
$Excelsheet->write( "B1", "Next_Column" );
  
$Excelbook->close;

Saída:
Workig-with-excel-files

Leitura de um arquivo Excel: A
leitura de um arquivo Excel em Perl é feita usando o Spreadsheet::Readmódulo em um script Perl. Este módulo exporta uma série de funções que você importa ou usa em seu script de código Perl. ReadData()função é usada para ler de um arquivo excel.
Exemplo:

use 5.016;
use Spreadsheet::Read qw(ReadData);
my $book_data = ReadData (‘new_excel.xlsx');
say 'A2: ' . $book_data->[1]{A2};

Saída:

A2: GeeksForGeeks

Manipulação de erros

Tratamento de erros em Perl é o processo de execução da ação apropriada contra um programa que causa dificuldade de execução devido a algum erro no código ou no compilador. Por exemplo, se abrir um arquivo que não existe gera um erro, ou acessar uma variável que não foi declarada gera um erro.
O programa irá parar se ocorrer um erro e, portanto, usando o tratamento de erros, podemos tomar as medidas adequadas em vez de interromper um programa completamente. O tratamento de erros é um requisito importante para qualquer linguagem sujeita a erros.

Perl fornece duas funções integradas para gerar exceções fatais e avisos, que são:

  1. morrer()
  2. avisar()

 
die(): Para sinalizar ocorrências de erros fatais no sentido de que o programa em questão não deve continuar.
Por exemplo, acessar um arquivo com open()informa se a operação de abertura foi bem-sucedida antes de prosseguir para outras operações de arquivo.

open FILE, "filname.txt" or die "Cannot open file: $!\n";

warn(): Ao contrário da die()função, warn()gera um aviso em vez de uma exceção fatal.

Por exemplo:

open FILE, "filname.txt" or warn "Cannot open file: $!\n";

Para saber mais sobre as várias técnicas diferentes de tratamento de erros, consulte Tratamento de erros em Perl