Perl to język, który został zaprojektowany jako narzędzie do analizy plików tekstowych oraz tworzenia raportów, aktualnie posiada wiele różnych zastosowań. Powstało również kilka języków, które upodabniają się do Perla, na przykład PHP, Python czy Ruby.
Historia Perla zaczyna się w 1986 roku kiedy Larry Wall rozpoczął pracę nad nowym językiem programowania. Tak rok później kończy swój projekt a Perl ukazuje się na światło dzienne. Nazwa Perl jest akronimem słów Practical Extraction and Report Language. W kolejnych latach powstawały nowe wersje Perla, aktualną jest wersja 5.22.1 opublikowana 13 grudnia 2015 roku.
Jest to doskonałe narzędzie dla programistów Perl do obróbki tekstu i plików binarnych a także pobierania z nich informacji oraz generowania komunikatów na ich podstawie. Wzorowany między innymi na języku C. Nazywany jest również językiem zarządzania systemem. Dla programistów jest wyjątkowo łatwy w użyciu a także wyróżnia się wydajnością. Pomimo tego że Perl nie jest językiem kompilowanym jest szybszy od większości języków interpretowanych. Natomiast jest językiem skryptowym co oznacza, że tworzone w nim programy są zwykłymi plikami tekstowymi które w dalszym etapie są wykonywane przez interpreter Perla. Dodatkowo pozwala konstruować skomplikowane struktury danych i programować w stylu obiektowym, dzięki użyciu referencji. Dużym atutem jest niezależność od platformy, na której tworzone skrypty są wykonywane. Przy tworzeniu nałożono nacisk na praktyczność Perla, która wiąże się z tym, że jest on elastyczny, łatwy, efektywny a także kompletny. Dzięki temu, że jego składnia jest zapożyczona od innych języków programowania, programista Perl nie musi uczyć się wszystkiego od nowa. Pomimo wszystkich swoich specyfikacji jest wystarczająco szybki by tworzyć w nim duże projekty. Dodatkowo pozwala na tworzenie aplikacji, które będą obsługiwały różne bazy danych, sieć czy nawet grafikę.
Przykładowy kod programisty Perl
Perl Przykład #1
#!/usr/bin/perl
use warnings;
use strict;
my $string = "first, second, third";
foreach ($string =~ /\b(\w+)\b/g) {
print "outer: got: $_, matched: $&, extracted: $1 \n";
foreach (/(\w)/g) {
print "\tinner: got: $_, matched $&, extracted $1 \n";
}
}
Perl Przykład #2
#!/usr/bin/perl
use strict;
use warnings;
use Path::Class;
my $dirs = dir('folder1','folder2');
# Iterate over the content
while (my $file = $dirs->next) {
# if is a directory skip
next if $file->is_dir();
# Print file name and path
print $file->stringify . "\n";
}