f.f.o. :: /add

Александр Фенстер

add@fenster.name fenster.name

Все записи

[695] 17 октября 2006; 20:35

Когда я трудился в техподдержке SWsoft, я считал свою работу интересной в частности потому, что редко выпадала такая смена, во время которой я не узнавал ничего нового об операционной системе Linux, и уж точно неоднократно в течение дня приходилось пользоваться утилитой man(1). На текущем же месте работы, где софт пишется для Linux, Windows (в MKS) и Mac OS X, а заметная часть моих обязанностей состоит в написании скриптов на Perl'е, которые должны работать одинаково в любой из перечисленных систем, на первое место однозначно выходят вопросы совместимости.

Каждый человек, хоть раз потративший десять минут на поиск ошибки в скрипте, возникшей из-за того, что chomp в линуксовом перле по умолчанию некорректно обрабатывает «виндовые» переводы строк "\r\n", запомнит надолго, что если на горизонте есть текстовые файлы, созданные в Windows, нужно помнить о значении переменной $/, а лучше вместо chomp делать что-нибудь типа s/[\r\n]//g. Каждый, кто хоть раз напарывался на имена каталогов с пробелами (а в Windows это намного более частое явление, чем в Linux), никогда не напишет system("somecommand $path/$file"), а напишет system("somecommand '$path/$file'"). И таких примеров масса.

Когда приходится думать о работе скрипта на двух разных перлах в трёх разных системах, скрипт определённо становится больше, сложнее и умнее. Но и работа становится заметно интереснее.