69 лучших вопроса и ответа на собеседовании по Perl (2025 г.)
Вот вопросы и ответы на собеседовании по Perl Scripting как для новичков, так и для опытных кандидатов, желающих получить работу своей мечты.
Вопросы для собеседования по Perl для первокурсников
1) Разница между переменными, в которых работает функция chomp?
- скаляр: Обозначается символом $. Переменная может быть числом или строкой.
- Массив: Обозначается префиксом символа @. Массивы индексируются числами.
Пространство имен для этих типов переменных различно. Например: @add, $add. Скалярные переменные находятся в одной таблице имен или пространстве имен и могут одновременно содержать одну конкретную информацию, а переменные массива находятся в другой таблице имен или пространстве имен. Скалярные переменные могут быть числом или строкой.
👉 Бесплатная загрузка PDF-файла: Вопросы и ответы для интервью по Perl
2) Создать функцию, которая доступна только внутри области, где она определена?
$pvt = Calculation(5,5); print("Result = $pvt\n"); sub Calculation{ my ($fstVar, $secndVar) = @_; my $square = sub{ return($_[0] ** 2); }; return(&$square($fstVar) + &$square($secndVar)); };
Вывод: Результат = 50
3) Какая особенность Perl обеспечивает возможность повторного использования кода? Приведите любой пример этой функции.
Функция наследования Perl обеспечивает возможность повторного использования кода. При наследовании дочерний класс может использовать методы и свойства родительского класса.
Package Parent; Sub foo { print("Inside A::foo\n"); } package Child; @ISA = (Parent); package main; Child->foo(); Child->bar();
4) В Perl мы можем отображать предупреждения, используя некоторые параметры, чтобы уменьшить или избежать ошибок. Что это за варианты?
- Параметр командной строки -w: Он отобразит список предупреждающих сообщений относительно кода.
- строгая прагма: Это заставляет пользователя объявлять все переменные, прежде чем их можно будет использовать с помощью функции my().
- Используя встроенный отладчик: Это позволяет пользователю прокручивать всю программу построчно.

5) Написать программу для обработки списка чисел.
Следующая программа при запуске попросит пользователя ввести числа, а в качестве выходных данных будет показано среднее значение чисел:
$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 объекты? Если да, то заставляет ли это вас использовать объекты? Если нет, то почему?
Да, Perl имеет объекты и не заставляет вас использовать объекты. Многие объектно-ориентированные модули можно использовать без понимания объектов. Но если программа слишком велика, то программисту будет лучше сделать ее объектно-ориентированной.
7) Можем ли мы динамически загружать двоичное расширение?
Да, мы можем динамически загружать двоичное расширение, но ваша система поддерживает это. Если он не поддерживает, вы можете статически скомпилировать расширение.
8) Напишите программу для объединения $firststring и $ Secondstring, результат этих строк должен быть разделен одним пробелом.
Синтаксис:
$result = $firststring . " ".$secondstring;
Программа:
#!/usr/bin/perl $firststring = "abcd"; $secondstring = "efgh"; $combine = "$firststring $secondstring"; print "$Combine\n";
Вывод:
abcd efgh
9) Как заменить каждый символ TAB в файле запятой?
perl -pi.bak -e 's/\t/,/g' myfile.txt
10) В Perl есть часто используемые аргументы. Что это за аргументы и что они означают?
-w (аргумент показывает предупреждение)
-d (используйте для отладки)
-c (которые только компилируются, но не запускаются)
-e (который выполняет)
Мы также можем использовать их комбинацию, например:
-вд
11) Сколько типов первичных структур данных в Perl и что они означают?
Скаляр: Он может одновременно хранить одну конкретную часть информации (строку, целое число или ссылку). Он начинается со знака доллара $, за которым следует идентификатор Perl. Идентификатор Perl может содержать буквенно-цифровые символы и знаки подчеркивания. Не допускается начинать с цифры. Массивы — это просто список скалярных переменных.
Массивы: Массивы начинаются со знака @. Пример массива:
my @arrayvar = ("string a", "string b "string c");
Ассоциативные массивы: Его также часто называют хэшами. Это третий основной тип данных в Perl после скаляров и массивов. Хэши названы так потому, что они работают очень похоже на общую структуру данных, которую программисты используют в других языках, — хэш-таблицы. Однако хеши в Perl на самом деле являются типом данных, напрямую поддерживаемым языком.
12) Какие функции в Perl позволяют включать файл модуля или модуль и в чем между ними разница?
"использовать"
- Метод используется только для модулей (только для включения файла типа .pm).
- Включенные объекты проверяются во время компиляции.
- Нам не нужно указывать расширение файла.
- загружает модуль во время компиляции.
"требовать"
- Метод используется как для библиотек, так и для модулей.
- Включенные объекты проверяются во время выполнения.
- Нам нужно указать расширение файла.
- Загружается во время выполнения.
предположим, что у нас есть файл модуля «Module.pm».
использовать модуль;
or
требуется «Module.pm»;
(сделаю то же самое)
13) Как определить область видимости «моих» переменных в Perl и чем она отличается от области видимости «локальных» переменных?
$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 ";
Вывод:
In block, $test = 3 In block, $::test = 2.3456 Outside the block, $test = 2.3456 Outside the block, $::test = 2.3456
Область видимости «моей» переменной находится только в блоке, но если мы объявим одну переменную локальной, мы сможем получить к ней доступ и снаружи блока. «my» создает новую переменную, «local» временно изменяет значение переменной.
14) Каким рекомендациям модулей Perl необходимо следовать?
Ниже приведены рекомендации, которые не являются обязательными.
Имя пакета всегда должно начинаться с заглавной буквы.
Полное имя файла должно иметь расширение «.pm».
В случае, если объектно-ориентированный метод не используется, пакет должен быть производным от класса Exporter.
Также, если не используются объектно-ориентированные методы, модуль должен экспортировать свои функции и переменные в основное пространство имен с помощью массивов @EXPORT и @EXPOR_OK (директива use используется для загрузки модулей).
Вопросы и ответы на собеседовании по Perl для опытных
Ниже приведены вопросы и ответы на собеседовании по Perl Scripting для опытных кандидатов:
15) Как в Perl используется интерпретатор?
Для выполнения каждая программа Perl должна быть пропущена через интерпретатор Perl. Первая строка во многих программах Perl выглядит примерно так:
#!/usr/bin/perl
Интерпретатор внутренне компилирует программу в дерево разбора. Любые слова, пробелы или знаки после символа решетки будут игнорироваться интерпретатором программы. После преобразования в дерево разбора интерпретатор немедленно выполняет его. Perl широко известен как интерпретируемый язык, но это не совсем так. Поскольку интерпретатор фактически преобразует программу в байт-код перед ее выполнением, его иногда называют интерпретатором/компилятором. Хотя скомпилированная форма не сохраняется в виде файла.
16) «Методы, определенные в родительском классе, всегда будут переопределять методы, определенные в базовом классе». Что означает это заявление?
Приведенное выше утверждение представляет собой концепцию полиморфизма в Perl. Для пояснения утверждения приведем пример:
[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]
Эта программа отображает:
Внутри Z::foo
– В приведенном выше примере метод foo(), определенный в классе Z, переопределяет наследование от класса X. Полиморфизм в основном используется для добавления или расширения функциональности существующего класса без перепрограммирования всего класса.
17) Как определить, что Perl подходит для ситуации в программировании?
Если вам нужно более быстрое выполнение, Perl предоставит вам это требование. Если вы хотите разработать веб-приложение, в программировании существует большая гибкость. Нам не нужно покупать лицензию на Perl, поскольку она бесплатна. Мы можем использовать CPAN (комплексный Perl Archive Network), который является одним из крупнейших репозиториев свободного кода в мире.
18) Написать синтаксис для сложения двух массивов в Perl?
@arrayvar = (@array1,@array2);
Чтобы добиться того же, мы также можем использовать функцию push.
19) Сколько типов операторов используется в Perl?
Арифметические операторы
+, - ,*
Операторы присваивания:
+= , -+, *=
Операторы увеличения/уменьшения:
++, --
Конкатенация строк:
'.'
оператор
операторы сравнения:
==, !=, >, < , >=
Логические операторы:
&&, ||, !
20) Если вы хотите очистить массив, как бы вы это сделали?
Мы можем очистить массив, установив для его длины любое число –ve, обычно -1, и назначив нулевой список.
use strict; use warnings; my @checkarray; if (@checkarray) { print "Array is not empty"; } else { print "Array is empty"; }
21) Где хранятся аргументы командной строки и если вы хотите прочитать аргументы командной строки с помощью Perl, как бы вы это сделали?
Аргументы командной строки в Perl хранятся в массиве @ARGV.
$ARGV[0] (первый аргумент)
$ARGV[1] (второй аргумент) и так далее.
$#ARGV — это нижний индекс последнего элемента массива @ARGV, поэтому количество аргументов в командной строке равно $#ARGV + 1.
22) Предположим, что массив содержит @arraycontent=('ab', 'cd', 'ef', 'gh'). Как распечатать все содержимое данного массива?
@arraycontent=('ab', 'cd', 'ef', 'gh') foreach (@arraycontent) { print "$_\n"; }
23) Какая польза от -w, -t и strict в Perl?
Когда мы используем –w, он предупреждает о возможных ошибках интерпретации в скрипте.
Strict сообщает Perl принудительно проверять определение и использование переменных. Это можно вызвать с помощью команды use strict. Если в сценарии есть какие-либо небезопасные или неоднозначные команды, эта прагма останавливает выполнение сценария, а не просто выдает предупреждения.
При использовании –t включается проверка на наличие повреждений. Это заставляет Perl проверять происхождение переменных, где внешние переменные не могут использоваться при выполнении подоболочек и системных вызовах.
24) Напишите программу на Perl для загрузки содержимого с сайта www.perlinterview.com/answers.php.
#!/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) Что имеет наивысший приоритет: список или условия? Объяснять?
Термины имеют наивысший приоритет в Perl. Термины включают переменные, кавычки, выражения в скобках и т. д. Операторы списка имеют тот же уровень приоритета, что и термины. В частности, эти операторы имеют очень сильный приоритет левого слова.
26) Перечислите типы данных, которые может обрабатывать Perl?
Скаляры ($): хранят одно значение.
Массивы (@): хранят список скалярных значений.
Хэши (%): он хранит ассоциативные массивы, которые используют значение ключа в качестве индекса вместо числовых индексов.
27) Написать синтаксис для использования функции grep?
grep BLOCK LIST grep (EXPR, LIST)
28) Для чего нужны опции -n и -p?
Опции -n и -p используются для переноса скриптов внутрь. Петли. Опция -n заставляет Perl выполнять сценарий внутри цикла. Опция -p также использует тот же цикл, что и -n, но в дополнение к нему используется continue. Если оба параметра -n и -p используются вместе, параметру -p отдается предпочтение.
29) Как используются опции -i и 0s?
Опция -i используется для изменения файлов на месте. Это означает, что Perl автоматически переименует входной файл, а выходной файл откроется с исходным именем. Если опция -i используется отдельно, резервная копия файла не будет создана. Вместо этого -i.bak вызывает возможность создания резервной копии файла.
30) Напишите программу, понятно объясняющую символическую таблицу.
В Perl таблица символов представляет собой хэш, содержащий список всех имен, определенных в пространстве имен, а также все функции и переменные. Например:
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) Как можно использовать предупреждения Perl и насколько важно их использовать?
Предупреждения Perl — это предупреждения Perl, которые проверяют качество созданного вами кода. Обязательные предупреждения указывают на проблемы на этапе лексического анализа. Дополнительные предупреждения указывают на случаи возможных аномалий.
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) В теле какого оператора есть выражения инициализации, проверки условий и приращения? Напишите синтаксис для использования этого оператора.
for ($count = 10; $count >= 1; $count--) { print "$count "; }
33) Как можно заменить символы из строки и сохранить количество замен?
#!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) Удалите повторяющиеся данные из @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) Как информацию можно поместить в хэши?
При ссылке на хэш-значение оно не создается. Он создается только после присвоения ему значения. Содержимое хеша не имеет буквального представления. В случае, если хэш должен быть заполнен сразу, необходимо выполнить его раскручивание. Раскручивание хеша означает, что пары ключ-значение в хеше могут быть созданы с использованием списка, а также могут быть преобразованы из него. В этом процессе преобразования четные элементы располагаются справа и называются значениями. Элементы, расположенные слева, имеют нечетные номера и хранятся как ключи. Хэш не имеет определенного внутреннего порядка, и, следовательно, пользователю не следует полагаться на какой-либо конкретный порядок.
Пример создания хеша:
%birthdate = ( Ram => "01-01-1985", Vinod => "22-12-1983", Sahil => "13-03-1989", Sony => "11-09-1991");
36) Почему псевдонимы Perl считаются более быстрыми, чем ссылки?
В Perl псевдонимы считаются более быстрыми, чем ссылки, поскольку они не требуют разыменования.
37) Как можно управлять памятью в Perl?
Всякий раз, когда переменная используется в Perl, она занимает некоторое пространство памяти. Поскольку память компьютера ограничена, пользователь должен внимательно следить за объемом памяти, используемой программой. Например:
use strict; open(IN,"in"); my @lines = <IN> close(IN); open(OUT,">out"); foreach (@lines) { print OUT m/([^\s]+)/,"\n"; } close(OUT);
При выполнении вышеуказанной программы после чтения файла она печатает первое слово каждой строки в другой файл. Если файлы слишком велики, системе может не хватить памяти. Чтобы этого избежать, файл можно разделить на разделы.
38) Как можно создавать анонимные подпрограммы?
sub BLOCK sub PROTO BLOCK sub ATTRS BLOCK sub PROTO ATTRS BLOCK
39) Что вы подразумеваете под контекстом подпрограммы?
Он определяется как тип ожидаемого возвращаемого значения. Вы можете использовать одну функцию, которая возвращает разные значения.
40) Перечислите разыменователь префиксов в Perl.
$-скалярные переменные
%-хэш-переменные
@-массивы
&-подпрограммы
Введите globs-*myvar означает @myvar, %myvar.
41) В модуле CPAN укажите экземпляр, который вы используете.
В CPAN CGI и DBI являются очень распространенными пакетами.
42) Каковы преимущества c перед Perl?
Для C существует больше инструментов разработки, чем для PERL. PERL выполняется медленнее, чем программы на языке C. Perl выглядит как интерпретируемый язык, но код выполняется на лету. Если вы не хотите, чтобы другие использовали ваш код Perl, вам нужно как-то скрыть свой код, в отличие от C. Без дополнительных инструментов невозможно создать исполняемый файл программы Perl.
43) «Регулярные выражения Perl соответствуют максимально длинной строке». Как называется этот матч?
Это называется «жадным сопоставлением», поскольку регулярные выражения Perl обычно соответствуют максимально длинной строке.
45) Как можно вызвать подпрограмму и идентифицировать подпрограмму?
'&myvariable' используется для вызова подпрограммы, а '&' используется для идентификации подпрограммы.
46) Для чего используется символ «->»?
В Perl символ «->» является инфиксным оператором разыменования. если правая часть представляет собой индекс массива, хэш-ключ или подпрограмму, то левая часть должна быть ссылкой.
@array = qw/ abcde/; # array print "n",$array->[0]; # it is wrong print "n",$array[0]; #it is correct , @array is an array
47) Где мы требуем «чавкать» и что это значит?
Мы можем удалить символ новой строки, используя команду «chomp». Его можно использовать во многих различных сценариях. Например:
excuteScript.pl FstArgu. $argu = $ARGV[0]; chomp $argu; --> to get rid of the carrige return.
48) Что означает символ «$_»?
«$_» — это переменная по умолчанию в Perl, а $_ известна как «пространство ввода и сопоставления шаблонов по умолчанию».
49) Какой интерфейс используется в PERL для подключения к базе данных? Как подключиться к базе данных в Perl?
Мы можем подключиться к базе данных, используя модуль DBI в Perl.
use DBI; my $dbh = DBI->connect('dbi:Oracle:orcl', 'username', 'password',)
50) Перечислите операторы, используемые в Perl?
OperaТоры, используемые в Perl,
- Конкатенация строк '.'
- сравнение Operators ==, !=, >,< , >=
- логический Operaторс &&, ll , !
- Назначение Operaторс + = ,- + , *=
- Увеличение и уменьшение Operaторс++ ,-
- Арифметический Operaторс +, – ,*
51) Объясните, какая особенность PERL обеспечивает возможность повторного использования кода?
Для обеспечения возможности повторного использования кода в PERL используется функция наследования. При наследовании дочерний класс может использовать методы и свойства родительского класса.
52) Укажите разницу между die и exit в Perl?
Die выведет сообщение об ошибке std перед завершением программы, а Exit просто завершит программу.
53) Для чего в Perl используется функция grep?
Чтобы отфильтровать список и вернуть только те элементы, которые соответствуют определенным критериям, используется функция Perl grep.
54) Какой синтаксис используется в функции Perl grep?
Синтаксис, используемый в Perl:
- ЧЕРНЫЙ СПИСОК grep
- grep ( ВЫРАЖЕНИЕ, СПИСОК )
- БЛОКИРОВАТЬ: Он содержит один или несколько операторов, разделенных фигурными скобками, последний оператор определяет в блоке, будет ли блок оценен как истинный или ложный.
- ЭКСПР: Он представляет собой любое выражение, поддерживающее $, особенно регулярное выражение. К каждому элементу списка применяется выражение, и если результат оценки истинен, текущий элемент будет прикреплен к возвращаемому списку.
- СПИСОК: Это список элементов или массив
55) Объясните, что такое скалярные данные и скалярные переменные в Perl?
Скаляр в Perl означает отдельный объект, например число или строку. Итак, Java Концепция int, float, double и string эквивалентна скаляру perls, а числа и строки взаимозаменяемы. В то время как скалярная переменная используется для хранения скалярных данных. Она использует знак $, за которым следует один или несколько буквенно-цифровых символов или подчеркивание. Она чувствительна к регистру.
56) Что означает символ -> в Perl?
В Perl символ стрелки -> используется для создания определенного объекта класса или доступа к нему.
57) Назовите, сколькими способами вы можете выразить строку в Perl?
Вы можете выразить строку в Perl разными способами.
Например, «это гуру99».
- qq/это guru99, например строка в двойных кавычках/
- qq^это guru99, как строка в двойных кавычках^
- вопрос/это гуру99/
- вопрос&это гуру99&
- q(это гуру99)
58) Объясните утверждения ИСПОЛЬЗОВАНИЯ и ТРЕБОВАНИЯ?
- Оператор REQUIRE: используется для импорта функций с глобальной областью действия, чтобы к их объектам и функциям можно было обращаться напрямую.
Пример: Требовать модуль,
Var=модуль::метод(); //метод, вызываемый по ссылке на модуль
- Операторы USE интерпретируются и выполняются во время синтаксического анализа, а во время выполнения выполняются операторы require.
Пример: использовать модуль
Вар=метод(); //метод можно вызвать напрямую
59) Объясните, что делает функция Chop & Chomp?
- Функция измельчения удаляет последний символ из выражения, каждого элемента списка
- Функция измельчения удаляет последний символ из выражения или каждого элемента списка, если он соответствует значению $/. Считается, что это лучше, чем отрезать, поскольку персонаж удаляется только в том случае, если есть совпадение.
60) Назовите, что такое CPAN?
CPAN означает комплексный Perl Archive Network, большая коллекция программного обеспечения и документации Perl.
61) Объясните, что такое полиморфизм в Perl?
В Perl полиморфизм означает, что методы, определенные в базовом классе, всегда будут переопределять методы, определенные в родительском классе.
62) Укажите, какие два способа получить частные значения внутри подпрограммы или блока?
Существует два способа получения частных значений внутри подпрограммы или блока.
- Местное Operaтор: С глобальными переменными может работать только этот оператор. Значение частной переменной сохраняется в Местное Operaтор и предусматривает возможность их восстановления в конце блока
- My Operaтор: Этот оператор можно использовать для определения или создания новой переменной. Переменная, созданная My Operaтор всегда будет объявлен частным для блока, внутри которого он определен.
63) Объясните, что такое STDIN, STDOUT и STDERR?
- STDIN: дескриптор файла STDIN используется для чтения с клавиатуры.
- STDOUT: используется для записи на экран или в другую программу.
- STDERR: он также используется для записи на экран. STDERR — это стандартный поток ошибок, используемый в Perl.
64) Что такое замыкание в PERL?
Замыкание — это блок кода, который используется для захвата среды, в которой оно определено. В частности, он фиксирует любые лексические переменные, из которых состоит блок и которые он использует в космическом пространстве.
65) Объясните, что такое однострочный Perl?
Один лайнер представляет собой одну программу командной строки и может быть выполнен немедленно из командной строки.
Например,
# run program under the debugger perl-d my_file
66) Объясните, что такое lvalue?
Lvalue — это скалярное значение, которое можно использовать для хранения результата любого выражения. Обычно он появляется в левой части выражения и представляет пространство данных в памяти.
67) Объясните, какая функция используется для определения количества символов в строке?
Чтобы узнать, сколько символов содержится в строке, длина () функция используется.
68) Объясните, что такое разыменование префикса, и перечислите их?
Использование определенного префикса при разыменовании переменной называется разыменованием префикса.
- $- Скалярные переменные
- %-хэш-переменные
- @-Массивы
- &-Подпрограммы
- Введите globs-*myvar означает @myvar, %myvar.
69) Объясните, какова функция возвращаемого значения?
Функция Return Value возвращает ссылку на объект, помещенный в CLASSNAME.
Сертификационный тест по Perl
Эти вопросы Perl MCQ помогут вам провести самооценку и подготовиться к сертификационному экзамену Perl. Пройдите эту бесплатную онлайн-викторину по Perl, которая содержит MCQ, чтобы проверить свои знания Perl.
Эти вопросы на собеседовании также помогут вам в устной речи.