Os argumentos da linha de comando são enviados para um programa Perl da mesma forma que em qualquer outra linguagem. A matriz @ARGV contém o argumento da linha de comando. Não há necessidade de usar variáveis mesmo se você usar 'use strict'. Por padrão, esta variável sempre existe e os valores da linha de comando são automaticamente colocados dentro desta variável. Para acessar os argumentos de linha de comando do seu script, você só precisa ler o array @ARGV.
Perl permite usar o array @ARGV como nomes de arquivos usando . O $ARGV contém o nome do arquivo atual ao ler do arquivo .
Elementos da matriz @ARGV
O array @ARGV funciona da mesma forma que um array normal. Seu primeiro argumento será $ARGV[0], o segundo $ARGV[1] e assim por diante.
Exemplo de argumento de linha de comando Perl
Vejamos um exemplo simples para imprimir argumentos de linha de comando. Neste exemplo, imprimiremos uma mensagem de boas-vindas com o nome do usuário como argumento da linha de comando. Precisamos de dois argumentos de linha de comando como nome e sobrenome do usuário.
Passo 1 Crie um roteiro bem vindo.pl em seu sistema.
#!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name. '; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint. ';
No script acima, primeiro ele verificará se dois argumentos de linha de comando são fornecidos ou não. Caso contrário, ocorrerá um erro de entrada incorreto. E se sim, ele processará esses argumentos como $ARGV[0] e $ARGV[1] respectivamente.
Passo 2 Execute o script em seu console como perl bem-vindo.pl Christian Grey
Nota: Antes de dar este comando, certifique-se de estar no diretório que contém seu script welcome.pl
Esta é a saída que você obterá em seu console.
Passo 2 Execute o script em seu console como perl bem-vindo.pl Cristão
Aqui, estamos passando apenas um argumento da linha de comando.
Na saída, você pode ver a mensagem de entrada errada ao passar um argumento.
Exemplo de argumentos de linha de comando Perl usando Loop
Agora executaremos um loop para imprimir os argumentos da linha de comando. Neste exemplo, você pode inserir quantos argumentos desejar.
Passo 1 Crie um roteiro loop.pl em seu sistema.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Passo 2 Execute o script em seu console como perl loop.pl a b c d e f g h
Veja a saída acima, ela também exibe o total de argumentos passados na linha de comando. Aqui passamos 8 argumentos.
Perl Getopt::Long
As opções simples de linha de comando são feitas usando a opção ?s. Opções complexas de linha de comando são feitas usando Getopt::Std e Getopt::Long.
Getopt significa Obter opções . Ele processa o conteúdo do @ARGV com base na configuração que lhe damos. Ele retorna valor verdadeiro ou falso com base no processamento.
Exemplo:
Neste exemplo, obteremos a idade do usuário na linha de comando.
use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME '; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; }
Declaramos uma variável $ x que armazenará o valor inserido em --de do console padrão. O de=s declara o parâmetro da linha de comando chamado --de com uma string depois dele. Ele é mapeado posteriormente para a variável $x. A barra invertida () significa que estamos passando uma referência para a variável.
Este script mudará para o parte apenas quando executarmos este script passando algo que se parece com um nome de parâmetro e começa com um (-) mas não é declarado neste script.
Agora, vamos executar este programa.
Saída:
Veja a saída, depois de inserir a idade no console, obtivemos a saída acima.