As 69 principais perguntas e respostas da entrevista Perl (2024)
Aqui estão as perguntas e respostas da entrevista sobre scripts Perl para candidatos mais novos e experientes para conseguir o emprego dos sonhos.
Perguntas da entrevista Perl para calouros
1) Diferença entre as variáveis em que funciona a função chomp?
- Escalar: É denotado pelo símbolo $. A variável pode ser um número ou uma string.
- Variedade: Denotado pelo prefixo do símbolo @. Matrizes são indexadas por números.
O namespace para esses tipos de variáveis é diferente. Por exemplo: @add, $add. As variáveis escalares estão em uma tabela de nomes ou namespace e podem conter informações específicas únicas por vez e as variáveis de matriz estão em outra tabela de nomes ou namespace. Variáveis escalares podem ser um número ou uma string
👉 Download gratuito de PDF: Perguntas e respostas da entrevista Perl
2) Criar uma função que só esteja disponível dentro do escopo onde está definida?
$pvt = Calculation(5,5); print("Result = $pvt\n"); sub Calculation{ my ($fstVar, $secndVar) = @_; my $square = sub{ return($_[0] ** 2); }; return(&$square($fstVar) + &$square($secndVar)); };
Saída: Resultado = 50
3) Qual recurso do Perl oferece capacidade de reutilização de código? Dê algum exemplo desse recurso.
O recurso de herança do Perl fornece capacidade de reutilização de código. Na herança, a classe filha pode usar os métodos e propriedades da classe pai
Package Parent; Sub foo { print("Inside A::foo\n"); } package Child; @ISA = (Parent); package main; Child->foo(); Child->bar();
4) Em Perl podemos mostrar os avisos utilizando algumas opções para reduzir ou evitar os erros. Quais são essas opções?
- A opção de linha de comando -w: Ele exibirá a lista de mensagens de aviso sobre o código.
- pragma estrito: Força o usuário a declarar todas as variáveis antes que elas possam ser usadas usando a função my().
- Usando o depurador integrado: Ele permite ao usuário percorrer todo o programa linha por linha.
5) Escreva o programa para processar uma lista de números.
O programa a seguir pediria ao usuário para inserir números quando executado e a média dos números seria mostrada como saída:
$sum = 0; $count = 0; print "Enter number: "; $num = <>; chomp($num); while ($num >= 0) { $count++; $sum += $num; print "Enter another number: "; $num = <>; chomp($num); } print "$count numbers were entered\n"; if ($count > 0) { print "The average is ",$sum/$count,"\n"; } exit(0);
6) Perl possui objetos? Se sim, isso força você a usar objetos? Se não, então por quê?
Sim, Perl tem objetos e não força você a usar objetos. Muitos módulos orientados a objetos podem ser usados sem a compreensão de objetos. Mas se o programa for muito grande, será eficiente para o programador torná-lo orientado a objetos.
7) Podemos carregar a extensão binária dinamicamente?
Sim, podemos carregar a extensão binária dinamicamente, mas seu sistema suporta isso. Se não for compatível, você poderá compilar estaticamente a extensão.
8) Escreva um programa para concatenar $firststring e $secondstring e o resultado dessas strings deve ser separado por um único espaço.
Sintaxe:
$result = $firststring . " ".$secondstring;
Programa:
#!/usr/bin/perl $firststring = "abcd"; $secondstring = "efgh"; $combine = "$firststring $secondstring"; print "$Combine\n";
Saída:
abcd efgh
9) Como substituo todos os caracteres TAB em um arquivo por vírgula?
perl -pi.bak -e 's/\t/,/g' myfile.txt
10) Em Perl, existem alguns argumentos que são usados com frequência. O que são esses argumentos e o que eles significam?
-w (argumento mostra aviso)
-d (usar para depuração)
-c (que compila apenas não executa)
-e (que executa)
Também podemos usar uma combinação destes como:
-wd
11) Quantos tipos de estruturas de dados primárias existem em Perl e o que elas significam?
O escalar: Ele pode conter uma informação específica por vez (string, número inteiro ou referência). Ele começa com o cifrão $ seguido pelo identificador Perl e o identificador Perl pode conter caracteres alfanuméricos e sublinhados. Não é permitido começar com um dígito. Matrizes são simplesmente uma lista de variáveis escalares.
Matrizes: As matrizes começam com o sinal @. Exemplo de matriz:
my @arrayvar = ("string a", "string b "string c");
Matrizes associativas: Também frequentemente chamados de hashes, são o terceiro tipo de dados principal em Perl depois de escalares e arrays. Hashes são nomeados assim porque funcionam de forma muito semelhante a uma estrutura de dados comum que os programadores usam em outras linguagens – tabelas hash. No entanto, hashes em Perl são, na verdade, um tipo de dados com suporte de linguagem direta.
12) Quais funções em Perl permitem incluir um arquivo de módulo ou um módulo e qual a diferença entre elas?
"usar"
- O método é usado apenas para os módulos (apenas para incluir arquivo do tipo .pm)
- Os objetos incluídos são verificados no momento da compilação.
- Não precisamos especificar a extensão do arquivo.
- carrega o módulo em tempo de compilação.
“exigir”
- O método é usado para bibliotecas e módulos.
- Os objetos incluídos são verificados em tempo de execução.
- Precisamos especificar a extensão do arquivo.
- Carrega em tempo de execução.
suponha que temos um arquivo de módulo como “Module.pm”
use o módulo;
ou
requer “Módulo.pm”;
(farei o mesmo)
13) Como você pode definir o escopo de “minhas” variáveis em Perl e como ele é diferente do escopo de variáveis “locais”?
$test = 2.3456; { my $test = 3; print "In block, $test = $test "; print "In block, $:: test = $:: test "; } print "Outside the block, $test = $test "; print "Outside the block, $:: test = $::test ";
Saída:
In block, $test = 3 In block, $::test = 2.3456 Outside the block, $test = 2.3456 Outside the block, $::test = 2.3456
O escopo da visibilidade da variável “minha” está apenas no bloco, mas se declararmos uma variável local, também poderemos acessá-la de fora do bloco. 'my' cria uma nova variável, 'local' altera temporariamente o valor de uma variável.
14) Quais diretrizes dos módulos Perl devem ser seguidas?
Abaixo estão as diretrizes e não são obrigatórias
O nome do pacote deve sempre começar com letra maiúscula.
Todo o nome do arquivo deve ter a extensão “.pm”.
Caso nenhuma técnica orientada a objetos seja utilizada, o pacote deve ser derivado da classe Exporter.
Além disso, se nenhuma técnica orientada a objetos for usada, o módulo deverá exportar suas funções e variáveis para o namespace principal usando os arrays @EXPORT e @EXPOR_OK (a diretiva use é usada para carregar os módulos).
Perguntas e respostas da entrevista Perl para experientes
Abaixo estão as perguntas e respostas da entrevista sobre scripts Perl para candidatos experientes:
15) Como o intérprete é usado em Perl?
Todo programa Perl deve passar pelo interpretador Perl para ser executado. A primeira linha em muitos programas Perl é algo como:
#!/usr/bin/perl
O interpretador compila o programa internamente em uma árvore de análise. Quaisquer palavras, espaços ou marcas após um símbolo de cerquilha serão ignorados pelo interpretador do programa. Após a conversão para a árvore de análise, o intérprete a executa imediatamente. Perl é comumente conhecido como uma linguagem interpretada, não é estritamente verdade. Como o intérprete realmente converte o programa em código de bytes antes de executá-lo, às vezes ele é chamado de intérprete/compilador. Embora o formulário compilado não seja armazenado como um arquivo.
16) “Os métodos definidos na classe pai sempre substituirão os métodos definidos na classe base”. O que esta afirmação significa?
A afirmação acima é um conceito de Polimorfismo em Perl. Para esclarecer a afirmação, vamos dar um exemplo:
[perl] package X; sub foo { print("Inside X::foo\n"); } package Z; @ISA = (X); sub foo { print("Inside Z::foo\n"); } package main; Z->foo(); [/perl]
Este programa exibe:
Dentro de Z::foo
– No exemplo acima, o método foo() definido na classe Z substitui a herança da classe X. O polimorfismo é usado principalmente para adicionar ou estender a funcionalidade de uma classe existente sem reprogramar a classe inteira.
17) Para uma situação de programação, como você pode determinar se Perl é adequado?
Se você precisar de uma execução mais rápida, o Perl fornecerá esse requisito. Há muita flexibilidade na programação se você deseja desenvolver um aplicativo baseado na web. Não precisamos comprar a licença do Perl porque ela é gratuita. Podemos usar CPAN (Comprehensive Perl Archive Network), que é um dos maiores repositórios de código livre do mundo.
18) Escreva a sintaxe para adicionar dois arrays em perl?
@arrayvar = (@array1,@array2);
Para fazer o mesmo, também podemos usar a função push.
19) Quantos tipos de operadores são usados no Perl?
Operadores aritméticos
+, - ,*
Operadores de atribuição:
+= , -+, *=
Operadores de incremento/decremento:
++, --
Concatenação de string:
'.'
operador
operadores de comparação:
==, !=, >, < , >=
Operadores lógicos:
&&, ||, !
20) Se você quiser esvaziar um array, como você faria isso?
Podemos esvaziar um array definindo seu comprimento para qualquer número –ve, geralmente -1 e atribuindo uma lista nula
use strict; use warnings; my @checkarray; if (@checkarray) { print "Array is not empty"; } else { print "Array is empty"; }
21) Onde os argumentos da linha de comando são armazenados e se você quiser ler os argumentos da linha de comando com Perl, como faria isso?
Os argumentos da linha de comando em Perl são armazenados em um array @ARGV.
$ARGV[0] (o primeiro argumento)
$ARGV[1] (o segundo argumento) e assim por diante.
$#ARGV é o subscrito do último elemento do array @ARGV, então o número de argumentos na linha de comando é $#ARGV + 1
22) Suponha que um array contenha @arraycontent=('ab', 'cd', 'ef', 'gh'). Como imprimir todo o conteúdo do array fornecido?
@arraycontent=('ab', 'cd', 'ef', 'gh') foreach (@arraycontent) { print "$_\n"; }
23) Qual é o uso de -w, -t e strict em Perl?
Quando usamos –w, ele avisa sobre possíveis erros de interpretação no script.
Strict diz ao Perl para forçar verificações na definição e uso de variáveis. Isso pode ser invocado usando o comando use strict. Se houver algum comando inseguro ou ambíguo no script, esse pragma interrompe a execução do script em vez de apenas emitir avisos.
Quando usado –t, ele ativa a verificação de contaminação. Força o Perl a verificar a origem das variáveis onde variáveis externas não podem ser usadas em execuções de subshell e chamadas de sistema
24) Escreva um programa para baixar o conteúdo do site www.perlinterview.com/answers.php em Perl.
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; my $siteurl = 'www.perlinterview.com/answers.php'; my $savefile = 'content.kml'; getstore($siteurl, $savefile);
25) Qual tem maior precedência, Lista ou Termos? Explicar?
Os termos têm a maior precedência em Perl. Os termos incluem variáveis, aspas, expressões entre parênteses, etc. Os operadores de lista têm o mesmo nível de precedência que os termos. Especificamente, esses operadores têm uma precedência de palavra à esquerda muito forte.
26) Liste os tipos de dados que o Perl pode manipular?
Escalares ($): armazena um único valor.
Arrays (@): armazena uma lista de valores escalares.
Hashes (%): armazena matrizes associativas que usam um valor-chave como índice em vez de índices numéricos
27) Escreva a sintaxe para usar a função grep?
grep BLOCK LIST grep (EXPR, LIST)
28) Qual é a utilidade das opções -n e -p?
As opções -n e -p são usadas para agrupar scripts dentro Loops. A opção -n faz com que o Perl execute o script dentro do loop. A opção -p também usou o mesmo loop que o loop -n, mas além dele, usa continue. Se ambas as opções -n e -p forem usadas juntas, a opção -p terá preferência.
29) Qual é o uso das opções -i e 0s?
A opção -i é usada para modificar os arquivos no local. Isto implica que Perl renomeará o arquivo de entrada automaticamente e o arquivo de saída será aberto usando o nome original. Se a opção -i for usada sozinha, nenhum backup do arquivo será criado. Em vez disso, -i.bak ativa a opção de criar um backup do arquivo.
30) Escreva um programa que explique claramente a tabela simbólica.
Em Perl, a tabela de símbolos é um hash que contém a lista de todos os nomes definidos em um namespace e contém todas as funções e variáveis. Por exemplo:
sub Symbols { my($hashRef) = shift; my(%sym); my(@sym); %sym = %{$hashRef}; @sym = sort(keys(%sym)); foreach (@sym) { printf("%-10.10s| %s\n", $_, $sym{$_}); } } Symbols(\%Foo::); package Foo; $bar = 2; sub baz { $bar++; }
31) Como você pode usar avisos Perl e qual a importância de utilizá-los?
Os avisos Perl são aqueles em que o Perl verifica a qualidade do código que você produziu. Os avisos obrigatórios destacam problemas na fase de análise lexical. Avisos opcionais destacam casos de possíveis anomalias.
use warnings; # it is same as importing "all" no warnings; # it is same as unimporting "all" use warnings::register; if (warnings::enabled()) { warnings::warn("any warning"); } if (warnings::enabled("void")) { warnings::warn("void", "any warning"); }
32) Qual instrução possui expressões de inicialização, verificação de condição e incremento em seu corpo? Escreva uma sintaxe para usar essa instrução.
for ($count = 10; $count >= 1; $count--) { print "$count "; }
33) Como você pode substituir os caracteres de uma string e salvar o número de substituições?
#!usr/bin/perl use strict; use warnings; my $string="APerlAReplAFunction"; my $counter = ($string =~ tr/A//); print "There are $counter As in the given string\n"; print $string;
34) Remova os dados duplicados de @array=(“perl”,”php”,”perl”,”asp”)
sub uniqueentr { return keys %{{ map { $_ => 1 } @_ }}; } @array = ("perl","php","perl","asp"); print join(" ", @array), "\n"; print join(" ", uniqueentr(@array)), "\n";
35) Como as informações podem ser colocadas em hashes?
Quando um valor hash é referenciado, ele não é criado. Ele só é criado quando um valor é atribuído a ele. O conteúdo de um hash não tem representação literal. Caso o hash deva ser preenchido de uma só vez, o desenrolamento do hash deve ser feito. O desenrolamento do hash significa que os pares de valores-chave no hash podem ser criados usando uma lista e também podem ser convertidos a partir dela. Neste processo de conversão, os itens pares são colocados à direita e são conhecidos como valores. Os itens colocados à esquerda têm numeração ímpar e são armazenados como chaves. O hash não possui uma ordem interna definida e, portanto, o usuário não deve confiar em nenhuma ordem específica.
Exemplo de criação de hash:
%birthdate = ( Ram => "01-01-1985", Vinod => "22-12-1983", Sahil => "13-03-1989", Sony => "11-09-1991");
36) Por que os aliases Perl são considerados mais rápidos que as referências?
Em Perl, os aliases são considerados mais rápidos que as referências porque não requerem nenhuma desreferenciação.
37) Como a memória pode ser gerenciada em Perl?
Sempre que uma variável é usada em Perl, ela ocupa algum espaço de memória. Como o computador possui memória limitada, o usuário deve ter cuidado com a memória utilizada pelo programa. Por exemplo:
use strict; open(IN,"in"); my @lines = <IN> close(IN); open(OUT,">out"); foreach (@lines) { print OUT m/([^\s]+)/,"\n"; } close(OUT);
Na execução do programa acima, após a leitura de um arquivo ele imprimirá a primeira palavra de cada linha em outro arquivo. Se os arquivos forem muito grandes, o sistema ficará sem memória. Para evitar isso, o arquivo pode ser dividido em seções.
38) Como você pode criar sub-rotinas anônimas?
sub BLOCK sub PROTO BLOCK sub ATTRS BLOCK sub PROTO ATTRS BLOCK
39) O que você quer dizer com contexto de uma sub-rotina?
É definido como o tipo de valor de retorno esperado. Você pode usar uma única função que retorne valores diferentes.
40) Liste o desreferenciador de prefixo em Perl.
Variáveis $-escalares
%-Variáveis hash
@-matrizes
&-subrotinas
Digite globs-*myvar significa @myvar,%myvar.
41) No módulo CPAN, nomeie uma instância que você usa.
No CPAN, o CGI e o DBI são pacotes muito comuns
42) Quais são as vantagens do c sobre o Perl?
Existem mais ferramentas de desenvolvimento para C do que para PERL. PERL é executado mais lentamente que programas C. Perl parece ser uma linguagem interpretada, mas o código é cumprido na hora. Se você não quiser que outros usem seu código Perl, você precisará ocultar seu código de alguma forma, diferentemente de C. Sem ferramentas adicionais, é impossível criar um executável de um programa Perl.
43) “Expressões regulares Perl correspondem à string mais longa possível”. Qual é o nome desta partida?
É chamado de “correspondência gananciosa” porque as expressões regulares Perl normalmente correspondem à string mais longa possível.
45) Como você pode chamar uma sub-rotina e identificar uma sub-rotina?
'&myvariable' é usado para chamar uma sub-rotina e '&' é usado para identificar uma sub-rotina.
46) Qual é o uso do símbolo '->'?
Em Perl, o símbolo '->' é um operador de desreferência infixo. se o lado direito for um subscrito de array, uma chave hash ou uma sub-rotina, então o lado esquerdo deverá ser uma referência.
@array = qw/ abcde/; # array print "n",$array->[0]; # it is wrong print "n",$array[0]; #it is correct , @array is an array
47) Onde exigimos 'chomp' e o que isso significa?
Podemos eliminar o caractere de nova linha usando 'chomp'. Ele pode ser usado em muitos cenários diferentes. Por exemplo:
excuteScript.pl FstArgu. $argu = $ARGV[0]; chomp $argu; --> to get rid of the carrige return.
48) O que significa o símbolo '$_'?
O '$_' é uma variável padrão em Perl e $_ é conhecido como “espaço de entrada padrão e correspondência de padrões
49) Qual interface usada no PERL para conectar ao banco de dados? Como você se conecta ao banco de dados em Perl?
Podemos nos conectar ao banco de dados usando o módulo DBI em Perl.
use DBI; my $dbh = DBI->connect('dbi:Oracle:orcl', 'username', 'password',)
50) Liste o operador usado em Perl?
Operatores usados em Perl são
- Concatenação de strings '.'
- Comparação Operators ==, !=, >,< , >=
- lógico Operators &&, ll , !
- Atribuição Operators + = ,- + , *=
- Aumentar e diminuir Operators ++ ,-
- Aritmética Operators +, – ,*
51) Explique qual recurso do PERL oferece capacidade de reutilização de código?
Para fornecer reutilização de código no recurso de herança PERL é usado. Na herança, a classe filha pode usar os métodos e propriedades da classe pai.
52) Mencione a diferença entre die e exit em Perl?
Die imprimirá uma mensagem no std err antes de encerrar o programa, enquanto Exit simplesmente encerrará o programa.
53) Em Perl, para que é usada a função grep?
Para filtrar a lista e retornar apenas os elementos que correspondem a determinados critérios, a função Perl grep é usada.
54) Qual é a sintaxe usada na função Perl grep?
A sintaxe usada em Perl é
- grep LISTA DE BLOCOS
- grep (EXPR, LISTA)
- QUADRA: Contém uma ou mais instruções delimitadas por colchetes, a última instrução determina no bloco se o bloco será avaliado como verdadeiro ou falso.
- EXP: Representa qualquer expressão que suporte $, particularmente uma expressão regular. Contra cada elemento da lista, uma expressão é aplicada e, se o resultado da avaliação for verdadeiro, o elemento atual será anexado à lista retornada
- LISTA: É uma lista de elementos ou um array
55) Explique o que são dados escalares e variáveis escalares em Perl?
Escalar em Perl significa uma única entidade como um número ou string. Então, o Java conceito de int, float, double e string é igual a escalar do perls e os números e strings são intercambiáveis. Enquanto a variável escalar é usada para armazenar dados escalares. Ela usa o sinal $ e é seguida por um ou mais caracteres alfanuméricos ou sublinhado. Ela diferencia maiúsculas de minúsculas.
56) O que o símbolo -> indica em Perl?
Em Perl, o símbolo de seta -> é usado para criar ou acessar um objeto específico de uma classe.
57) Mencione quantas maneiras você pode expressar strings em Perl?
Você pode expressar strings em Perl de várias maneiras
Por exemplo “este é guru99”.
- qq/isto é guru99 como string entre aspas duplas/
- qq^isto é guru99 como string com aspas duplas^
- q/este é o guru99/
- perguntas e este é o guru99&
- q(este é o guru99)
58) Explique as declarações USE e REQUIREMENT?
- Instrução REQUIRE: É usada para importar funções com escopo global, de forma que seus objetos e funções possam ser acessados diretamente
Exemplo: Exigir Módulo,
Var=módulo::método(); //método chamado com a referência do módulo
- As instruções USE são interpretadas e executadas durante a análise, enquanto durante o tempo de execução as instruções require são executadas.
Exemplo: Usar Módulo
Var=método(); //método pode ser chamado diretamente
59) Explique o que a função Chop & Chomp faz?
- função picar elimina o último caractere de expr, cada elemento da lista
- Função mastigar elimina o último caractere de um expr ou cada elemento da lista se corresponder ao valor de $/. É considerado melhor do que cortar, pois só remove o personagem se houver correspondência.
60) Mencione o que é CPAN?
CPAN significa Perl abrangente Archive Network, uma grande coleção de software e documentação Perl.
61) Explique o que é Polimorfismo em Perl?
Em Perl, Polimorfismo significa que os métodos definidos na classe base sempre substituirão os métodos definidos na classe pai.
62) Mencione quais são as duas maneiras de obter valores privados dentro de uma sub-rotina ou bloco?
Existem duas maneiras pelas quais valores privados podem ser obtidos dentro de uma sub-rotina ou bloco
- Locais Operator: Em variáveis globais apenas este operador pode operar. O valor da variável privada é salvo no Locais Operator e prevê restaurá-los no final do bloco
- My Operator: Para definir ou criar uma nova variável este operador pode ser usado. Variável criada por My Operator sempre será declarado privado para o bloco dentro do qual está definido.
63) Explique o que é STDIN, STDOUT e STDERR?
- STDIN: O identificador do arquivo STDIN é usado para ler no teclado
- STDOUT: É usado para escrever na tela ou em outro programa
- STDERR: Também é usado para escrever em uma tela. STDERR é um fluxo de erro padrão usado em Perl.
64) Qual é o fechamento em PERL?
O encerramento é um bloco de código que serve para capturar o ambiente onde está definido. Ele captura particularmente quaisquer variáveis lexicais que o bloco consiste e usa em um espaço sideral.
65) Explique o que é Perl one liner?
Um liner é um programa de linha de comando e pode ser executado imediatamente a partir da linha de comando.
Por exemplo, nos
# run program under the debugger perl-d my_file
66) Explique o que é lvalue?
Um lvalue é um valor escalar que pode ser usado para armazenar o resultado de qualquer expressão. Normalmente aparece no lado esquerdo da expressão e representa um espaço de dados na memória.
67) Explique qual é a função usada para identificar quantos caracteres existem em uma string?
Para saber quantos caracteres existem em uma string, comprimento () função é usada.
68) Explique o que são desreferenciadores de prefixo e liste-os?
Usando um prefixo específico ao desreferenciar uma variável, eles são chamados de desreferenciadores de prefixo.
- $- Variáveis escalares
- %-Variáveis hash
- @-Matrizes
- &-Subrotinas
- Digite globs-*myvar significa @myvar,%myvar
69) Explique qual é a função do Valor de Retorno?
A função Return Value retorna uma referência a um objeto abençoado em CLASSNAME.
Questionário de certificação Perl
Essas perguntas Perl MCQ irão ajudá-lo na autoavaliação e preparação para o exame de certificação Perl. Faça este Quiz Perl online gratuito que contém MCQs para testar seu conhecimento de Perl.
Essas perguntas da entrevista também ajudarão na sua viva (oral).