Треки
/
Perl
Perl
/
Салабус
/
Посилання
По

Посилання у Perl

9 вправ

Про концепцію Посилання

Щоб ефективно користуватися Perl, важливо розуміти посилання. Оскільки посилання є скалярами, а масиви та словники можуть містити лише скаляри, саме посилання дають змогу вкладати ці структури даних одну в одну.

Посилання можна створювати на наявні змінні та підпрограми за допомогою оператора зворотного слеша \:

  • \$scalar, щоб створити посилання на скаляр (це може бути будь-який скаляр, наприклад \1, а не лише змінна).
  • \@array, щоб створити посилання на масив.
  • \%hash, щоб створити посилання на словник.
  • \&sub, щоб створити посилання на код.

Також можна створити так зване анонімне посилання для масивів, словників і підпрограм:

  • ['Alice', 'Bob', 'Charlie'], щоб створити анонімне посилання на масив.
  • {foo => 'a', bar => 'b', baz => 'c'}, щоб створити анонімне посилання на словник.
  • sub { return 1 }, щоб створити анонімне посилання на код.

УВАГА: у певних контекстах фігурні дужки в Perl можуть бути неоднозначними. Якщо посилання на словник виходить не таким, як ми очікували, додамо на початку знак плюс, щоб усунути неоднозначність, наприклад +{}. Додаткову інформацію див. у розділі Фігурні дужки.

До посилань можна дістатися за допомогою оператора стрілки ->:

  • $ref->[0], щоб дістатися до елемента всередині посилання на масив.
  • $ref->{foo}, щоб дістатися до значення всередині посилання на словник.
  • $ref->($arg), щоб викликати підпрограму через посилання на код.

До даних усередині складних структур даних, як-от багатовимірні масиви та вкладені словники, можна дістатися, зчепивши індекси, наприклад $ref->{foo}[0]{bar} (те саме, що $ref->{foo}->[0]->{bar}).

Щоб розіменувати весь масив або словник, можна скористатися оператором стрілки, після якого стоять відповідно @* або %*, наприклад $ref->@* або $ref->%*. Також можна отримати зрізи посилання на масив або словник, замінивши * на індекс, наприклад $ref->@[0..2] або $ref->@{'Foo', 'Bar'}. Для зрізів тут так само змінюється сигіл, як і для змінних масиву та словника.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Посилання

Практика заблокована

Розблокуйте ще 8 вправ, щоб практикувати концепцію Посилання