# **🐫 Booth: Perl (1987)**

* **Creator:** Larry Wall  
* **Design Philosophy:** "Practical Extraction and Reporting Language" — designed to make command-line system utilities and text manipulation quick, painless, and highly expressive. Built on the core motto: *There's more than one way to do it* (TMTOWTDI).  
* **Key Innovations:** Built-in regular expression engine, associative arrays (hashes), context-sensitive evaluations (scalar vs. list), and a flexible, permissive syntax optimized for scripting.

## **🚀 Hello, World\!**

\#\!/usr/bin/perl  
use strict;  
use warnings;

print "Hello, World\!\\n";

## **🎨 Showpiece: Regular Expression Log Parser**

Perl quickly became the undisputed champion of the early web due to its unmatched ability to process text files. It evaluates matches using internal deterministic and non-deterministic finite automata (NFA/DFA):

![][image1]This script reads raw textual logs, runs regular expression extractions, and compiles counts inside an associative array (hash):

\#\!/usr/bin/perl  
use strict;  
use warnings;

\# Mock Log Files (In-memory file handles)  
my $log\_data \= \<\<'END\_LOG';  
192.168.1.1 \- SUCCESS \- login  
192.168.1.5 \- FAILURE \- invalid password  
10.0.0.12   \- SUCCESS \- checkout  
192.168.1.1 \- FAILURE \- database timeout  
END\_LOG

open(my $fh, "\<", \\$log\_data) or die "Cannot open log string: $\!";

\# Initialize dynamic hash map  
my %status\_counts;

while (my $line \= \<$fh\>) {  
    chomp($line);  
      
    \# regex capture structure: IP \- STATUS \- MSG  
    if ($line \=\~ /^(\[\\d\\.\]+)\\s+-\\s+(\[A-Z\]+)\\s+-\\s+(.\*)$/) {  
        my $ip     \= $1;  
        my $status \= $2;  
        my $info   \= $3;  
          
        \# Accumulate counter  
        $status\_counts{$status}++;  
    }  
}

\# Iterate through hash map keys  
foreach my $status (keys %status\_counts) {  
    print "System Event Status '$status' occurred: $status\_counts{$status} time(s)\\n";  
}

close($fh);  


[image1]: <data:image/png;base64,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>