AL

text/x-perl

Safe

Magic Bytes

Offset: 0
65 76 61 6C 20 22 65 78 65 63 20 2F 75 73 72 2F 6C 6F 63 61 6C 2F 62 69 6E 2F 70 65 72 6C

The AL file format consists of autoloadable Perl subroutines generated by the AutoSplit utility, a component of the Perl core distribution. These files enable the Perl interpreter to load specific function definitions into memory only when required, optimizing startup performance and memory overhead for large software modules. While primarily a legacy optimization technique, these files contain plain-text executable code and should be treated with the same security precautions as standard Perl scripts.

Extension

.al

MIME Type

text/x-perl

Byte Offset

0

Risk Level

Safe

Validation Code

How to validate .al files in Python

Python
def is_al(file_path: str) -> bool:
    """Check if file is a valid AL by magic bytes."""
    signature = bytes([0x65, 0x76, 0x61, 0x6C, 0x20, 0x22, 0x65, 0x78, 0x65, 0x63, 0x20, 0x2F, 0x75, 0x73, 0x72, 0x2F, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x70, 0x65, 0x72, 0x6C])
    with open(file_path, "rb") as f:
        return f.read(30) == signature

How to validate .al files in Node.js

Node.js
function isAL(buffer: Buffer): boolean {
  const signature = Buffer.from([0x65, 0x76, 0x61, 0x6C, 0x20, 0x22, 0x65, 0x78, 0x65, 0x63, 0x20, 0x2F, 0x75, 0x73, 0x72, 0x2F, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x70, 0x65, 0x72, 0x6C]);
  return buffer.subarray(0, 30).equals(signature);
}
Go
func IsAL(data []byte) bool {
    signature := []byte{0x65, 0x76, 0x61, 0x6C, 0x20, 0x22, 0x65, 0x78, 0x65, 0x63, 0x20, 0x2F, 0x75, 0x73, 0x72, 0x2F, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x70, 0x65, 0x72, 0x6C}
    if len(data) < 30 {
        return false
    }
    return bytes.Equal(data[:30], signature)
}

API Endpoint

GET /api/v1/al
curl https://filesignature.org/api/v1/al

Related Formats