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 (який виконує)
Ми також можемо використовувати такі комбінації, як:
-wd
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 Interview для досвідчених
Нижче наведено питання та відповіді на співбесіді з 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 (Comprehensive 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) Напишіть програму для завантаження вмісту веб-сайту www.perlinterview.com/answers.php на 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) Що має найвищий пріоритет, список чи терміни? Поясніть?
Терміни мають найвищий пріоритет у 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» і що це означає?
Ми можемо видалити символ нового рядка за допомогою '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 ==, !=, >,< , >=
- логічний Operators &&, ll, !
- Призначення Operators + = ,- + , *=
- Приріст і декремент Operators ++ ,-
- Арифметика Operators +, – ,*
51) Поясніть, яка функція PERL забезпечує повторне використання коду?
Щоб забезпечити можливість повторного використання коду в PERL, використовується функція успадкування. У спадкуванні дочірній клас може використовувати методи та властивості батьківського класу.
52) Згадайте різницю між die і exit у Perl?
Die надрукує повідомлення на std err перед завершенням програми, тоді як Exit просто завершить програму.
53) Для чого використовується функція grep у Perl?
Для фільтрації списку та повернення лише тих елементів, які відповідають певним критеріям, використовується функція Perl grep.
54) Який синтаксис використовується у функції grep Perl?
У Perl використовується такий синтаксис
- grep СПИСОК БЛОКІВ
- grep (ВИРАЗ, СПИСОК)
- БЛОКУВАТИ: Він містить один або більше операторів, розділених фігурними дужками, останній оператор визначає в блоці, чи буде блок оцінюватися як істинне чи хибне.
- EXPR: Він представляє будь-який вираз, який підтримує $, зокрема регулярний вираз. До кожного елемента списку застосовується вираз, і якщо результат оцінки істинний, поточний елемент буде приєднано до поверненого списку
- СПИСОК: Це список елементів або масив
55) Поясніть, що таке скалярні дані та скалярні змінні в Perl?
Скаляр у Perl означає одну сутність, наприклад число або рядок. Отже, Java Концепція int, float, double та string дорівнює скаляру perls, а числа та рядки можна замінити. Тоді як скалярна змінна використовується для зберігання скалярних даних. У ньому використовується знак $ і один або кілька буквено-цифрових символів або підкреслення. Він чутливий до регістру.
56) Що означає символ -> у Perl?
У Perl символ стрілка –> використовується для створення або доступу до певного об’єкта класу.
57) Згадайте, скількома способами можна виразити рядок у Perl?
Ви можете виразити рядок у Perl різними способами
Наприклад, «це guru99».
- qq/це guru99 як рядок у подвійних лапках/
- qq^це guru99 як рядок у подвійних лапках^
- q/це guru99/
- q&це guru99&
- q(це guru99)
58) Поясніть оператори USE та REQUIREMENT?
- Інструкція REQUIRE: вона використовується для імпорту функцій із глобальною областю, щоб до їхніх об’єктів і функцій можна було отримати прямий доступ.
Приклад: Вимагати модуль,
Var=module::method(); //метод викликається з посиланням на модуль
- Оператори USE інтерпретуються та виконуються під час синтаксичного аналізу, тоді як під час виконання виконуються оператори require.
Приклад: використовувати модуль
Var=method(); //метод можна викликати безпосередньо
59) Поясніть, що робить функція Chop & Chomp?
- Функція подрібнення усуває останній символ з виразу, кожного елемента списку
- Функція Chomp усуває останній символ із виразу або кожного елемента списку, якщо він відповідає значенню $/. Це вважається кращим, ніж рубати, оскільки воно видаляє персонажа, лише якщо є збіг.
60) Згадайте, що таке CPAN?
CPAN означає Comprehensive 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 one liner?
Один вкладиш — це одна програма командного рядка, і її можна негайно запустити з командного рядка.
Наприклад,
# run program under the debugger perl-d my_file
66) Поясніть, що таке lvalue?
lvalue — це скалярне значення, яке можна використовувати для збереження результату будь-якого виразу. Зазвичай він з’являється в лівій частині виразу та представляє простір даних у пам’яті.
67) Поясніть, що таке функція, яка використовується для визначення кількості символів у рядку?
Щоб визначити, скільки символів міститься в рядку, довжина () використовується функція.
68) Поясніть, що таке префіксне розіменування, і перелічіть їх?
Використання певного префікса під час розіменування змінної називається розіменуванням префікса.
- $- Скалярні змінні
- %-хеш-змінні
- @-Масиви
- &-Підпрограми
- Введіть globs - *myvar означає @myvar, %myvar
69) Поясніть, що таке функція повернення значення?
Функція «Повернене значення» повертає посилання на об’єкт, благословенний у CLASSNAME.
Сертифікаційна вікторина Perl
Ці питання Perl MCQ допоможуть вам у самооцінці та підготовці до сертифікаційного іспиту Perl. Пройдіть цю безкоштовну онлайн-вікторину Perl, яка містить MCQ, щоб перевірити свої знання Perl.
Ці запитання для співбесіди також допоможуть у вашій віва (усній).