Вы можете сделать это в основном так же, как и в C, но используйте ссылки вместо указателей и хэши вместо структур.
Но в Perl обычно вы неЭто необходимо, потому что встроенные в Perl массивы довольно умные и быстрые.Они растут автоматически и уже выполняют большинство функций связанного списка, таких как добавление и удаление произвольных элементов с помощью splice
, а также добавление и удаление из передней и задней части массива с помощью pop
, push
, shift
,и unshift
.И, в отличие от связанного списка, вы получаете O (1) произвольный доступ.Подробнее см. perlfunc .
Вы также этого не делаете, потому что написание собственных структур данных в Perl, как правило, довольно медленное.Массивы Perl написаны на C, но ваш связанный список будет написан на гораздо более медленном Perl и будет занимать гораздо больше памяти.Хотя алгоритм может быть более эффективным, реализация будет медленной.В терминах информатики константа будет очень большой.Конечным результатом являются специализированные структуры данных, такие как связанные списки и деревья, которые имеют смысл, только когда вы начинаете изучать сотни тысяч или миллионы элементов.
Другой вариант - использовать библиотеку связанных списков, написанную на C. Вы можете воспользоваться библиотеками C, используя вещь под названием XS, которая действует как мост между кодом C и кодом Perl .Но это не самая простая вещь для использования.