Наиболее интересная сетевая тема, это процессы, потоки, каналы и сигналы. Данное направление является важной составляющей языка Perl, также как для веб-мастера SEO-технологии http://www.rookee.ru/post/2010/01/11/birzha-ssylok-gde-kupit-ssylki.aspx и поэтому имеет фундаментальное значение. Путем создания новых процессов программа Perl может вызывать на выполнение другие программы или даже создавать собственные копий для распределения работы. Каналы позволяют сценариям Perl обмениваться данными с другими процессами, а сигналы дают возможность контролировать другие процессы из сценариев Perl и управлять ими.
UNIX, VMS, Windows и большинство других современных операционных систем являются многозадачными. Они позволяют выполнять одновременно несколько программ, в каждой из которых поддерживается отдельный поток выполнения команд, называемый процессом. На компьютерах с несколькими процессорами процессы, выполняемые на отдельных процессорах, функционируют, в полном смысле слова, одновременно, а процессы, выполняемые на однопроцессорных компьютерах, только кажутся работающими одновременно, поскольку операционная система быстро переключает управление с одного процесса на другой, предоставляя каждому из них небольшой интервал времени для выполнения.
В сетевых приложениях часто требуется выполнять сразу две или более задач. Например, сервер может быть вынужден одновременно обрабатывать запросы от нескольких клиентов или выполнять один запрос, ожидая в то же время поступления новых запросов. Многозадачный режим значительно упрощает написание подобных программ, поскольку позволяет запускать новые процессы для выполнения каждой из задач, которые возникают перед приложением. Каждый процесс в той или иной степени является независимым, что позволяет одному процессу выполнять свою работу без учета того, какие действия выполняют другие процессы.
Язык Perl поддерживает многозадачный режим двух типов. Один из них основан на традиционной модели мультипроцессной обработки UNIX, позволяющей текущему процессу создавать собственную копию путем вызова функции fork(). После выполнения функции fork() появляются два процесса, почти во всем аналогичные друг другу. Один из них получает задание выполнять одну задачу, а другой - другую.
Многозадачный режим другого типа, основанный на современной концепции упрощенных потоков команд thread, обеспечивает выполнение всех задач в рамках одного процесса. Однако и в этом случае одна программа может иметь несколько потоков выполнения, работающих в ней независимо друг от друга.