Как отмечалось выше, при помощи срочных данных можно получить быстрый доступ к указанной информации, например, получить списки подписчиков в инстаграм или другую системную информацию. И для прогрессивного использования данной технологии мы используем функцию sockatmark(). На первый взгляд эта конструкция кажется простой, но есть один нюанс. Конкретный необходимый файл заголовка не является стандартным во всех операционных системах и даже называется по-разному: sys/ioctl .ph, sys/socket. ph, sys/sockio.ph или sys/sockios.ph. В результате разработка переносимого кода становится затруднительной. Более того, ни один из этих преобразованных файлов заголовка не входит в состав стандартного дистрибутива Perl, но должен быть создан («ручную с использованием “капризного” и даже иногда ненадежного сценария Perl под названием h2ph. Это инструментальное средство описано в оперативной документации POD, но краткий пример его применения приведен ниже.
% cd /usr/include
% h2ph -r -l .
Здесь предполагается использование системы UNIX, в которой файлы заголовков хранятся в каталоге /usr/include. Пользователи других операционных систем, в которых установлен транслятор С или C++, должны найти каталог файлов заголовков своего транслятора и вызвать на выполнение сценарий h2ph из этого каталога. Да же и в этом случае сценарий h2ph иногда вырабатывает неправильный код Perl, и поэтому полученные файлы .ph могут потребовать корректировки вручную.
После создания преобразованных файлов заголовков все равно приходится определять, какой из них содержит константу SIOCATMARK. Один из подходов состоит в осуществлении нескольких попыток до тех пор, пока одна из них не окажется успешной. В следующем фрагменте кода используется жестко закодированное значение для систем Win32, а затем предпринимается ряд попыток обратиться по возможным путям поиска файла .ph. Если ни одна из этих попыток не оказывается успешной, вызывается функция die.