Я делюсь здесь вопросами с собеседования по Perl, думая, что это может помочь людям, работающим над Perl или пытающимся устроиться на работу, где требуется программирование на Perl. Это некоторые распространенные вопросы, которые побудят вас добавить дополнительные вопросы, если вы считаете, что это будет полезно для интервью.

Вот коллекция наиболее часто задаваемых вопросов о Perl на собеседовании.

Основы Perl

  1. Что такое КПАН? Его использование?
  2. Что означает «использовать строго», «использовать переменные» и «не использовать переменные»?
  3. Разница ч/б использовать и требовать?
  4. Что означают символы $@ и % перед переменной?
  5. Какой цели служит каждый из следующих вариантов: -w, strict, -T?
  6. Объясните использование do, require, use, import
  7. Использование нашего, моего и местного?
  8. Использование функции ссылки
  9. Что такое STDIN, STDOUT и STDERR?
  10. @INC и %INC
  11. Как вы можете вызвать команду оболочки? Подсказка: system(), обратная кавычка, exec() в деталях
  12. В чем точная разница между system() и exec() (аналогично вопросу № 11)
  13. Обработка ошибок с помощью eval
  14. Выведите массив @arr в обратном порядке без учета регистра.
  15. Существует два типа операторов eval: eval EXPR и eval BLOCK. Объясните их.
  16. Автовивификация (очень редко)
  17. Вопросы по хешу и ссылке на хэш
  18. Сортировать хеш по значениям
  19. Длина хеша
  20. Как сослаться на хэш и как его разыменовать
  21. Вложение хэша
  22. Жевать и рубить
  23. Объясните qw,qq,qx (для чего он нужен, когда использовать)
  24. Какие существуют способы объединения строк в Perl?
  25. Функции на массиве: push, pop, shift, unshift, join, split, splice.
  26. Различные хэш-функции, такие как каждая, ключи, значения, существует, удаляет
  27. Числовая и строковая сортировка
  28. Как установить переменные среды в Perl (подсказка: %ENV)
  29. Использование функций map и grep в Perl
  30. В чем разница между die и exit в perl
  31. Массив с повторяющимися цифрами. Сортировать и печатать цифры без подсчета. Пример: @arr = (1,2,4,6,3,1,2,6,8,3,4,9,1,2,4). Вывод должен быть @arr = (1,1,12,2,2,3,34,4,4,6,6,8,9) ). Вы не можете использовать функцию хеширования. Подумайте и об оптимизации.
  32. Десятичный в двоичный (программа)
  33. Как узнать, какой метод вызывается или вызывается в Perl и в каком методе вы находитесь в данный момент? Подсказка: вызывающий()
  34. Объясните использование функции caller и wantarray?
  35. Как найти номер строки, пакет и имя файла в Perl? (Подсказка: __FILE__, __LINE__, __PACKAGE__)
  36. Как установить модуль Perl из CPAN
  37. Передайте массив подпрограмме и получите t как ссылку на массив в подпрограмме. Подсказка: прототип подпрограммы. Пример: под-под-имя(\@)
  38. У вас есть два массива. Допустим, @arr1 = (1,2,5,6) и @arr2 = (3,4). Нам нужно поместить элемент @arr2 в @arr1 таким образом, чтобы @arr1 стал @arr1= (1,2 ,3,4,5,6) без использования третьего массива. Подсказка: используйте функцию склеивания
  39. Встроенная специальная переменная, например $!, $? И т. д
  40. Ввод и вывод в Perl
  41. Как реализовать стек и очередь в Perl?
  42. Как узнать список установленных модулей в Perl?
  43. Использование блока BEGIN и END.
  44. Смоделируйте поведение прагмы «use lib» с помощью блока BEGIN.

Работа с файлами в Perl

  1. Файловое тестирование. Двоичный или текстовый, размер, доступ как –e, -f, -a, -c –m и т. д.
  2. Использование специального дескриптора файла _. (Примечание: это просто _ не $_). Использование этого может значительно улучшить производительность во многих случаях.
  3. Синтаксис для открытия, добавления, чтения, записи файлов
  4. Как назначить дескриптор файла в массив вместо использования цикла while?
  5. Как удалить файл?
  6. Как скопировать или переместить файл?
  7. Каковы различные права доступа к файлам (флаги) в Perl?
  8. Учитывая файл, подсчитайте вхождение слова (без учета регистра)
  9. Отображение содержимого файла с помощью хэша в Perl

Веб-интерфейс и Perl CGI

  1. Что вы знаете о CGI.pm?
  2. Как установить сеансы и куки и как реализовать на Perl?
  3. Как отобразить вывод на основе JSON
  4. Почему два \n в print «Content-type: text/html \n\n»;

Ориентирован на базу данных

  1. Как подключить базу данных с помощью DBI http://perlmeme.org/tutorials/connect_to_db.html
  2. Какие вы знаете способы получения записей из таблицы (fetchrow_hashref/arrayref)

Объектно-ориентированный Perl

  1. Дифф ч/б модуль и пакет
  2. Разница ч/б класса и пакета (хотя редко спрашивают)
  3. Как вы вызываете любую подпрограмму объектно-ориентированным способом? Подсказка: благослови оператора
  4. Использовать базу, EXPORT, EXPORT_OK
  5. Разница между ИСА и ЭКСПОРТ
  6. Используйте вопросы, связанные с базой
  7. Использование функции АВТОЗАГРУЗКА.

Регулярные выражения в Perl

  1. Проверка IP-адреса
  2. Проверка идентификатора электронной почты
  3. Там больше одного @. Дайте регулярное выражение для хранения имени пользователя и доменного имени после встречи с последним @ (последний @ будет точкой разделения, и там может быть более одного специального символа)
  4. Для чего используются различные модификаторы
  5. Группа, диапазон, метасимвол и т. д.
  6. m, s, tr
  7. Замените последний «x» в строке на «ax» в одном регулярном выражении. Пример: abcxdefgxgaxa должно стать abcxdefgxgaaxa.
  8. Регулярное выражение Perl жадно. Можете ли вы объяснить это на одном примере?
  9. Можете ли вы проверить условие палиндрома, используя регулярное выражение в Perl? (Подсказка: регулярное выражение не поддерживает рекурсию или подсчет)

Perl One Liner

  1. Что такое однострочник Perl и где вы будете его использовать?
  2. Какие есть варианты в Perl one-Liner? Объясните в деталях
  3. Добавляйте пустую строку перед каждой строкой.
  4. Удалить пустые строки из файла.
  5. Вывести общее количество строк в файле (эмулировать wc -l).
  6. Вывести количество непустых строк в файле.
  7. Какой вариант вы будете использовать для проверки только синтаксиса без его выполнения?
  8. Какой параметр предназначен для включения всех предупреждений или отключения всех предупреждений, несмотря на использование предупреждения или отсутствие предупреждений соответственно?

Этот пост был впервые опубликован на AlienCoders.