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

Скалярный и списочный контекст

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 4 тематическим шкалам и подробный разбор.
Вопрос 1 из 20
Какой вариант верно связывает операции с `@x`, `$n` и `@copy` и наблюдаемое поведение?
PerlКонтекст выражения
my @x = qw(a b c);
my $n = @x;
my @copy = @x;
say "$n/@copy";
Вопрос 2 из 20
Не запуская фрагмент «Возврат списка», выберите точное описание его работы.
PerlВозврат списка
sub pair { return (10, 20) }
my $x = pair();
my @x = pair();
say "$x/@x";
Вопрос 3 из 20
Что произойдёт после выполнения фрагмента «Оператор wantarray»?
PerlОператор wantarray
sub mode { return !defined wantarray ? 'void' : wantarray ? 'list' : 'scalar' }
say mode();
my @x = mode();
mode();
Вопрос 4 из 20
Какой вывод следует непосредственно из операций примера «Неочевидные преобразования»?
PerlНеочевидные преобразования
my %h = (a => 1, b => 2);
my $x = %h;
say $x;
Вопрос 5 из 20
Какой отказ объясняется показанным кодом, а не внешней системой?
PerlКонтекст выражения
my @x = qw(a b c);
say scalar reverse @x;
Вопрос 6 из 20
Какую границу автор фрагмента «Возврат списка» не учёл?
PerlВозврат списка
sub load { return () }
my $x = load();
say defined $x ? $x : 'undef';
Вопрос 7 из 20
Какой дефект проявится в варианте «Оператор wantarray» с `$value` и `load_values`?
PerlОператор wantarray
sub load_values {
    return wantarray ? (1, 2, 3) : [1, 2, 3];
}
my $value = load_values();
say $value + 0;
Вопрос 8 из 20
Что нужно заметить при ревью фрагмента «Неочевидные преобразования»?
PerlНеочевидные преобразования
my $found = grep /x/, @items;
my @found = grep /x/, @items;
Вопрос 9 из 20
Почему пограничный случай больше не теряется в участке с `@rev`, `@x` и `$text`?
PerlКонтекст выражения
my @rev = reverse @x;
my $text = join '', @rev;
Вопрос 10 из 20
Почему этот вариант пригоднее для рабочего кода?
PerlВозврат списка
sub lookup { my ($k) = @_; return wantarray ? ($k, 1) : 1 }
Вопрос 11 из 20
Почему новая версия с `@v` устраняет исходный дефект?
PerlОператор wantarray
sub values { my @v = (1,2,3); return wantarray ? @v : scalar @v }
Вопрос 12 из 20
Как показанная редакция «Неочевидные преобразования» делает контракт проверяемым?
PerlНеочевидные преобразования
my $count = grep { /x/ } @items;
my @rows = grep { /x/ } @items;
Вопрос 13 из 20
Какой вывод стоит перенести из учебного примера «Контекст выражения» в рабочий код?
Вопрос 14 из 20
Какой вывод объединяет результат, дефект и исправление в теме «Возврат списка»?
Вопрос 15 из 20
Какое положение темы «Оператор wantarray» помогает выбрать надёжную реализацию?
Вопрос 16 из 20
Какой вывод стоит перенести из учебного примера «Неочевидные преобразования» в рабочий код?
Вопрос 17 из 20
Какой вывод о механизме «Контекст выражения» выдерживает проверку на пограничном входе?
Вопрос 18 из 20
Какую оговорку нужно добавить к основному правилу темы «Возврат списка»?
Вопрос 19 из 20
Что важно отдельно проверить при переносе приёма «Оператор wantarray» в рабочий код?
Вопрос 20 из 20
Какое утверждение о теме «Неочевидные преобразования» не приписывает механизму лишних гарантий?

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

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

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

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