PL Perl  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Ссылки и сложные структуры данных

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 4 тематическим шкалам и подробный разбор.
Вопрос 1 из 20
Что в этом примере с `@a` и `$r` происходит на самом деле?
PerlСсылка на массив
my @a = (1,2);
my $r = \@a;
push @$r, 3;
say join ',', @a;
Вопрос 2 из 20
Что в этом примере с `%h`, `$r` и `$h` происходит на самом деле?
PerlСсылка на хеш
my %h = (a => 1);
my $r = \%h;
$r->{b} = 2;
say $h{b};
Вопрос 3 из 20
Какой прогноз для кода с `$x` выдержит пошаговую проверку?
PerlРазыменование
my $x = [ { ids => [1,2] } ];
say $x->[0]{ids}[1];
Вопрос 4 из 20
Какой вывод следует непосредственно из операций примера «Циклические структуры»?
PerlЦиклические структуры
my $a = {};
$a->{self} = $a;
undef $a;
Вопрос 5 из 20
Что нужно заметить при ревью фрагмента «Ссылка на массив»?
PerlСсылка на массив
my $r;
{ my @tmp = (1,2); $r = \@tmp }
say $r->[0];
Вопрос 6 из 20
Что в этом коде нарушает ожидаемое поведение?
PerlСсылка на хеш
my $r = { user => { name => 'Ada' } };
my %copy = %$r;
$copy{user}{name} = 'Lin';
Вопрос 7 из 20
Почему участок с `$x` ненадёжен на пограничном входе?
PerlРазыменование
my $x;
push @{ $x->{items} }, 1;
Вопрос 8 из 20
Какое скрытое допущение ломает контракт примера «Циклические структуры»?
PerlЦиклические структуры
my $parent = { children => [] };
my $child = { parent => $parent };
push @{ $parent->{children} }, $child;
Вопрос 9 из 20
Почему новая версия с `$copy` и `$r` устраняет исходный дефект?
PerlСсылка на массив
my $copy = [@$r];
Вопрос 10 из 20
Какую проверяемую гарантию добавляет исправление «Ссылка на хеш»?
PerlСсылка на хеш
my $copy = { %$r, user => { %{ $r->{user} } } };
Вопрос 11 из 20
Почему пограничный случай больше не теряется в участке с `$x` и `ref`?
PerlРазыменование
die 'shape' unless ref($x) eq 'HASH' && ref($x->{items}) eq 'ARRAY';
push @{ $x->{items} }, 1;
Вопрос 12 из 20
Почему пограничный случай больше не теряется в участке с `$child` и `weaken`?
PerlЦиклические структуры
use Scalar::Util 'weaken';
weaken($child->{parent});
Вопрос 13 из 20
Что точнее всего описывает контракт механизма «Ссылка на массив»?
Вопрос 14 из 20
Что является главным ориентиром при работе с «Ссылка на хеш»?
Вопрос 15 из 20
Какой принцип объясняет три кодовых примера блока «Разыменование»?
Вопрос 16 из 20
Какое правило отделяет семантику Perl от случайно удачного запуска?
Вопрос 17 из 20
Какое ограничение блока «Ссылка на массив» следует проверять отдельным примером?
Вопрос 18 из 20
Что важно отдельно проверить при переносе приёма «Ссылка на хеш» в рабочий код?
Вопрос 19 из 20
Какое утверждение о теме «Разыменование» не приписывает механизму лишних гарантий?
Вопрос 20 из 20
Какое различие в механизме «Циклические структуры» чаще всего теряют при обобщении?

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

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

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

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