Язык Perl

perl логотип

Perl - это многофункциональный язык программирования с более чем 30-летней историей развития. Perl работает более чем на 100 платформах - от портативных компьютеров до мэйнфреймов - и подходит как для быстрого создания прототипов, так и для крупномасштабных проектов разработки.

"Perl - это семейство языков, "Раку" (ранее известный как "Perl 6") входит в это семейство, но является отдельным языком, имеющим собственную команду разработчиков. Его существование не оказывает существенного влияния на дальнейшее развитие "Perl".

Возможности Perl

Критически важные задачи

Используется для реализации критически важных проектов в государственном и частном секторах.

Объектно-ориентированное, процедурное и функциональное программирование Поддерживает объектно-ориентированное, процедурное и функциональное программирование.

Легко расширяемый

В сети Comprehensive Perl Archive Network (CPAN) доступно более 25 000 модулей с открытым исходным кодом.

Работа с текстом

Perl содержит мощные средства обработки текста, что делает его идеальным для работы с HTML, XML и всеми другими языками разметки и естественными языками.

Поддержка Юникода

Поддерживается 13-я версия Юникода (начиная с Perl 5.32).

Интеграция с базами данных

Интерфейс интеграции с базами данных (DBI) Perl поддерживает базы данных сторонних разработчиков, включая Oracle, Sybase, Postgres, MySQL и многие другие.

Интерфейс библиотек C/C++

Perl взаимодействует с внешними библиотеками C/C++ через XS или SWIG.

Встраиваемый

Интерпретатор Perl может быть встроен в другие системы, такие как веб-серверы и серверы баз данных.

Открытый исходный код

Perl - это программное обеспечение с открытым исходным кодом, лицензируемое в соответствии с Artistic License, или GNU General Public License (GPL).

Пример кода

#!/usr/local/bin/perl
#
# composite series of images over a background image
#

if ($#ARGV != 4) {
 print "usage: compem bg.rgb inbase outbase startNum stopNum\n";
 exit;
}

$bg = $ARGV[0];
$inbase = $ARGV[1];
$outbase = $ARGV[2];
$start = $ARGV[3];
$stop = $ARGV[4];

# for each image
for ($i=$start; $i <= $stop; $i++) {

    # pad numbers
    $num = $i;
    if($i<10) { $num = "00$i"; }
    elsif($i<100) { $num = "0$i"; }

    # call unix command "over"
    $cmd = "over $bg $inbase.$num $outbase.$num 0 0";
    print $cmd."\n";
    if(system($cmd)) { print "over failed\n"; }
}

Источники