PL Perl  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Объектное программирование Perl

Практические задания по теме «Объектное программирование Perl» требуют сопоставить несколько решений, найти источник ошибки и оценить последствия выбранного подхода. В тесте 25 вопросов: код нужно не только читать, но и трассировать, проверять на отказ, сопоставлять несколько правдоподобных решений. Ровно 15 заданий содержат фрагменты Perl; остальные проверяют выбор подхода в реальной ситуации. Если в условии не сказано иначе, предполагаются современный Perl 5.40+, strict и warnings; внешние модули рассматриваются в указанном контексте.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 5 тематическим шкалам и подробный разбор.
Вопрос 1 из 25
Как точнее всего описать действие фрагмента с `$class`, `%arg` и `@_`?
PerlСоздание объектов через bless
sub new { my ($class,%arg)=@_; return bless { %arg }, $class }
Вопрос 2 из 25
Как завершится этот код по правилам Perl 5.40?
PerlМетоды
sub name { my ($self)=@_; return $self->{name} }
say $obj->name;
Вопрос 3 из 25
Какой вывод следует непосредственно из операций примера «Наследование»?
PerlНаследование
package Child; our @ISA=('Parent');
sub run { my $self=shift; $self->SUPER::run(@_) }
Вопрос 4 из 25
Как ведёт себя участок «Инкапсуляция» при выполнении?
PerlИнкапсуляция
sub balance { $_[0]{balance} }
sub deposit { $_[0]{balance}+=$_[1] }
Вопрос 5 из 25
Какое утверждение точно описывает поведение фрагмента «Диагностика результата» с `$obj`, `ref` и `isa`?
PerlДиагностика результата
my $obj = bless {x=>1}, 'Thing';
say ref($obj);
say $obj->isa('Thing');
Вопрос 6 из 25
Что в этом коде нарушает ожидаемое поведение?
PerlСоздание объектов через bless
sub new { my ($class)=@_; bless [], 'Base' }
Вопрос 7 из 25
Какую границу автор фрагмента «Методы» не учёл?
PerlМетоды
my $method = $input;
$obj->$method(@args);
Вопрос 8 из 25
Какое скрытое допущение ломает контракт примера «Наследование»?
PerlНаследование
sub run { my $self=shift; Parent::run($self,@_) }
Вопрос 9 из 25
Какой диагноз точнее всего относится к участку с `$account`?
PerlИнкапсуляция
$account->{balance} = -1000;
Вопрос 10 из 25
Какой риск связан именно с операциями `$object`, `ref` и `accept_parent`?
PerlДиагностика результата
if (ref($object) eq 'Parent') {
    accept_parent($object);
}
Вопрос 11 из 25
Почему пограничный случай больше не теряется в участке с `$class`, `%arg` и `@_`?
PerlСоздание объектов через bless
sub new { my ($class,%arg)=@_; my $self={%arg}; return bless $self, ref($class)||$class }
Вопрос 12 из 25
Какой вывод точнее всего объясняет пользу правки «Методы»?
PerlМетоды
my %dispatch = (show => 'show', hide => 'hide');
my $m = $dispatch{$input} // die 'bad';
$obj->$m();
Вопрос 13 из 25
Что отличает это исправление от маскировки симптома?
PerlНаследование
use parent 'Parent';
sub run { my $self=shift; return $self->SUPER::run(@_) }
Вопрос 14 из 25
Почему этот вариант пригоднее для рабочего кода?
PerlИнкапсуляция
sub deposit { my ($self,$n)=@_; die 'amount' unless $n>0; $self->{balance}+=$n; return $self }
Вопрос 15 из 25
Что меняется по существу после правки в блоке «Диагностика результата»?
PerlДиагностика результата
die 'contract' unless $obj->can('run');
Вопрос 16 из 25
Какое положение темы «Создание объектов через bless» помогает выбрать надёжную реализацию?
Вопрос 17 из 25
Какой общий принцип темы «Методы» переносится на другие программы?
Вопрос 18 из 25
Какое положение темы «Наследование» помогает выбрать надёжную реализацию?
Вопрос 19 из 25
На что следует опираться при ревью кода по теме «Инкапсуляция»?
Вопрос 20 из 25
Как сформулировать основное правило блока «Диагностика результата» без лишних обещаний?
Вопрос 21 из 25
Какой предел гарантий блока «Создание объектов через bless» остаётся в силе после успешного запуска?
Вопрос 22 из 25
Какое предостережение по теме «Методы» нельзя заменить включением strict и warnings?
Вопрос 23 из 25
Какое утверждение о теме «Наследование» не приписывает механизму лишних гарантий?
Вопрос 24 из 25
Как точнее всего обозначить границу безопасного использования приёма «Инкапсуляция»?
Вопрос 25 из 25
Какой вывод о механизме «Диагностика результата» выдерживает проверку на пограничном входе?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу