Реализация Perl использует системный вызов mmap . То, что делает этот вызов, устанавливает указатель, который представляется процессу нормальным сегментом памяти или буфером для программы. Он отображает содержимое файла в область памяти. Существуют преимущества производительности по сравнению с обычным файловым вводом-выводом (чтение) - одно состоит в том, что нет никаких вызовов библиотеки пользовательского пространства, необходимых для получения доступа к данным, другое заключается в том, что часто требуется меньше операций копирования (например, перемещение данных между ядро и пользовательское пространство).
Строки и регулярные выражения в Perl основаны на 8-разрядных байтах (в отличие от utf16 для Java, например), поэтому собственный "тип символов" в Perl - это та же кодировка файла mmapped.
Когда механизм регулярных выражений затем работает с резервной переменной mmap, он напрямую обращается к данным файла через область отображенной памяти - без использования функций ввода-вывода Perl или даже функций ввода-вывода libc.
Mmap, вероятно, в значительной степени ответственен за разницу в производительности по сравнению с версией Python, использующей обычные библиотеки ввода-вывода Python, что дополнительно увеличивает накладные расходы на поиск разрывов строк.
Программа Perl также поддерживает -J для распараллеливания обработки, где oepen "- |" вызывает fork (), где дескриптор файла в родительском элементе находится в stdout дочернего элемента. Дочерние процессы сериализуют свои результаты в stdout, а родительские десериализуют их, чтобы координировать и суммировать результаты.