Сетевое программирование полностью сводится к межпроцессной связи (IPC —interprocess communication). Во время этой связи процессы обмениваются данными. В зависимости от приложения, это может быть программа обмена данными через быстрые прокси сервера, два взаимодействующих процесса могут функционировать на одном и том же компьютере или на двух разных, а компьютеры могут находиться в одном и том же сегменте локальной сети или в разных подсетях глобальной сети. Два процесса могут иметь много общего, если, например, один из них предназначен для работы под управлением другого, или могут обеспечивать взаимодействие лишь в узких рамках, если они были разработаны с промежутком в несколько десятилетий разными авторами, для разных операционных систем.
Самой простой формой межпроцессной связи, предоставляемой языком Perl, является канал. Канал - это дескриптор файла, который подключает текущий сценарий к стандартному входу или стандартному выходу другого процесса. Каналы полностью реализованы в версиях Perl для UNIX, VMS и Microsoft Windows, а в системе Macintosh реализованы только в среде MPW.
Для открытия канала применяется форма функции open() с двумя параметрами. Как и прежде, первый параметр представляет собой произвольное имя дескриптора файла. Однако вторым параметром является другая программа и все ее параметры, которым либо предшествует, либо за которым следует символ канала “ | ”. Команда вызова программы должна быть введена точно так же, как и в командном интерпретаторе операционной системы, применяемом по умолчанию. Таковым в системах UNIX является командный интерпретатор Bourne (“sh”), а в системах Microsoft Windows — командный интерпретатор DOS/NT.