Зачем заметка про Перл на сайте Фортрана? Ну, я бы воспользовался любой возможностью, чтобы упомянуть Перл, потому что Перл - радость и удовольствие. Но и объективно Перл вполне уместен здесь - в разделе "Помимо Фортрана". Я объясню, почему. Но сначала - немного про Перл для тех, кто его не знает.
Перл - это язык программирования. Он интерпретируемый, приспособлен для создания скриптов. Но и для больших программ тоже годится: средства модульности, ООП, процедурности - на высоте. Продуман очень качественно, до таких мелочей, что это даже удивительно. Очень сильно интегрирован с системой. Создан лингвистом Ларри Уоллом. Хорош для обработки текста, механизм регулярных выражений встроен в язык и очень крут. Многое есть только в Перле или было только в Перле, а по удобству пользования регэкспами конкурентов просто нет. [кто хочет что-то вякнуть, лучше не стоит].
Некоторые принципы (они действительно выполняются!): полезно быть важным, но важнее быть полезным; есть более одного способа сделать это; простые вещи должны делаться просто, а сложные вещи должны делаться. Перл создан лингвистом по образцу естественного языка. Поэтому там многое похоже на естественный язык и удобно, хотя нетрадиционно. Например, важную роль играет контекст: Если "ожидается" скаляр, то это одно, а если список - то другое. Скалярный контекст делится на числовой, строковый, логический, пустой. Так, массив в скалярном контексте трактуется как число его элементов. А в логическом контексте ложь - это число нуль, пустая строка, строка из символа 0 и неопределенное значение. Пустой массив - это ложь. Поэтому оператор or работает так: возвращает первый операнд, если он истина, и второй в противном случае. Это позволяет использовать красивые и читаемые конструкции вроде do_something or die. Преобразование между числовой формой и текстовой - также по контексту. Допустимо писать "2.2" * 3
Объект данных снабжены префиксом: $ для скаляров, @для массивов, % для хэшей. Есть и другие, реже используемые. Они позволяют, например, встраивать данные в строки: print "My name is $name, I was born in $year. My hobbies are @hobbies."
Перл имеет массу функций, дублирующих команды операционной системы, а также позволяет выполнять последние посредством обратных кавычек (которые на клавише ё) и функции system. Есть еще exec, но она не возвращается в программу, поэтому редко нужна. Перл дает свободу писать так, как хочется. Поэтому можно писать иключительно понятно, почти на правильном английском: print reverse sort keys %hash; с другой стороны, Перл задействует все доступные символы, поэтому можно "писать псевдографикой". У спецпеременных есть длинные понятные имена, но их никто не использует: $1 удобнее, чем соответствующее длинное имя типа $ТЕКСТ_ЗАХВАЧЕННЫЙ_ПЕРВОЙ_СКОБКОЙ_В_ПОСЛЕДНЕМ_ПОИСКЕ_ПО_РЕГЭКСПУ Хорошая программа на Перле прекрасно читается, а конкурсы на самую непонятную программу или Perl-golf - соревнование на реализацию заданного алгоритма за минимальное число нажатий клавиш - это реализация свободы, даваемой Перлом. Можно писать программы-сердечки, можно - в одну строку, можно включить модуль и писать вообще как хочешь - языки, в которых программа состоит из пробелов и табуляций, выглядит как пьеса для театра или кулинарный рецепт, основаны на Перле.
Еще несколько радостей навскидку: параметры в функции передаются списком в спецпеременной @_ и функция сама разбирается с ними; отрицательные индексы массива - это индексы с конца; существует переменная по умолчанию $_, к которой обращаются по умолчанию многие конструкции и функции, в том числе - пользовательские. Это аналог местоимения - если говорим о Васе, то "он" - это Вася. Например, можно писать while(<>) {chomp;s/6/шесть/g;print}
при этом <> читает строку со стандартного ввода или файла, указанного в параметре, и заносит ее в $_; пока $_ содержит непустую строку, выполняется тело цикла (строка "0" не ложь, потому что там еще будет символ конца строки); chomp откусывает от $_ символ конца строки; s заменяет все вхождения 6 в строке $_ на заданный текст; print выводит $_ на стандартный вывод. Модификаторы операторов позволяют писать красиво: print shift while @_. Существует специальный язык разметки POD (Plain Old Documentation), позволяющий писать докуметацию прямо в коде. Интерпретатор игнорирует текст документации, а обработчики POD игнорируют код, преобразуя документацию в текст, латех, формат справки UNIX, да мало ли куда еще.
Но вернемся к нашей теме. Perl отлично походит для обработки текстовых файлов. Есть sed, awk, grep, bash - но Перл может все это и еще многое, и все логично, удобно, собрано в одном месте и единообразно. То есть Перл - не единственное средство, но удобное и всем его рекомендую. Он отлично помогает обрабатывать файлы диагностического вывода; делать отчеты типа "собрать среднюю температуру поверхности моря, превышающаю 20 градусов, и выдать в файл с указанием дня и координат точки"; перевести программу из фиксированного формата Фортрана в свободный; перекодировать символ конца строки из/в Windows-стиль; заменить регистр ключевых слов Фортрана так, как это желает подсветка синтаксиса редактора (у меня сейчас mc красит end конструкций не так, как END процедур и самой программы); привести синтаксис программы на Фортране к "каноническому виду" - это нужно для сравнения текстов программ; специальный diff, выдающий не просто различия, а указывающий, в какой процедуре они имеются; анализатор кода, выявляющий потоки данных, то есть где какие объекты данных (в программе на Фортране) меняют свои значения; запускатель программы, производящий некоторые действия: уборку вывода прошлого запуска, проверка наличия необходимых данных и т.п. Может, я потом выложу все это здесь - но не теперь. Я это сделал, оно мне помогло, но гарантировать безглючность не могу и описания полного нет. Может, руки дойдут. Надеюсь...