perl revision 284194
1166425Sjoel#------------------------------------------------------------------------------
2166425Sjoel# $File: perl,v 1.22 2014/04/28 12:04:35 christos Exp $
3166425Sjoel# perl:  file(1) magic for Larry Wall's perl language.
4166425Sjoel#
5166425Sjoel# The `eval' lines recognizes an outrageously clever hack.
6166425Sjoel# Keith Waclena <keith@cerberus.uchicago.edu>
7166425Sjoel# Send additions to <perl5-porters@perl.org>
8166425Sjoel0	search/1	eval\ "exec\ /bin/perl		Perl script text
9166425Sjoel!:mime	text/x-perl
10166425Sjoel0	search/1	eval\ "exec\ /usr/bin/perl	Perl script text
11166425Sjoel!:mime	text/x-perl
12166425Sjoel0	search/1	eval\ "exec\ /usr/local/bin/perl	Perl script text
13166425Sjoel!:mime	text/x-perl
14166425Sjoel0	search/1	eval\ '(exit\ $?0)'\ &&\ eval\ 'exec	Perl script text
15166425Sjoel!:mime	text/x-perl
16166425Sjoel0	search/1	#!/usr/bin/env\ perl	Perl script text executable
17166425Sjoel!:mime	text/x-perl
18166425Sjoel0	search/1	#!\ /usr/bin/env\ perl	Perl script text executable
19166425Sjoel!:mime	text/x-perl
20166425Sjoel0	search/1	#!
21166425Sjoel>0	regex	\^#!.*/bin/perl$	Perl script text executable
22166425Sjoel!:mime	text/x-perl
23166425Sjoel
24166425Sjoel# by Dmitry V. Levin and Alexey Tourbin
25166425Sjoel# check the first line
2653126Sdfr0	search/1	package
2729415Sjmg>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;	Perl5 module source text
2829415Sjmg!:strength + 10
2974763Scg# not 'p', check other lines
3074763Scg0	search/1	!p
3174763Scg>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;
3274763Scg>>0	regex		\^1\ *;|\^(use|sub|my)\ .*[(;{=]	Perl5 module source text
3374763Scg!:strength + 10
34129180Struckman
3574763Scg# Perl POD documents
3674763Scg# From: Tom Hukins <tom@eborcom.com>
3729415Sjmg0	search/1/W	\=pod\n		Perl POD document text
3829415Sjmg0	search/1/W	\n\=pod\n	Perl POD document text
3929415Sjmg0	search/1/W	\=head1\ 	Perl POD document text
4029415Sjmg0	search/1/W	\n\=head1\ 	Perl POD document text
4133474Sscrappy0	search/1/W	\=head2\ 	Perl POD document text
4250723Scg0	search/1/W	\n\=head2\ 	Perl POD document text
4350723Scg0	search/1/W	\=encoding\ 	Perl POD document text
4433474Sscrappy0	search/1/W	\n\=encoding\ 	Perl POD document text
4533474Sscrappy
4650723Scg
4750723Scg# Perl Storable data files.
4833474Sscrappy0	string	perl-store	perl Storable (v0.6) data
4939899Sluigi>4	byte	>0	(net-order %d)
5039899Sluigi>>4	byte	&01	(network-ordered)
5133474Sscrappy>>4	byte	=3	(major 1)
5229415Sjmg>>4	byte	=2	(major 1)
5329415Sjmg
5429415Sjmg0	string	pst0	perl Storable (v0.7) data
5533474Sscrappy>4	byte	>0
5629415Sjmg>>4	byte	&01	(network-ordered)
5729415Sjmg>>4	byte	=5	(major 2)
5829415Sjmg>>4	byte	=4	(major 2)
5929415Sjmg>>5	byte	>0	(minor %d)
6029415Sjmg
6130869Sjmg# This is Debian #742949 by Zefram <zefram@fysh.org>:
6229415Sjmg# -----------------------------------------------------------
6330869Sjmg# The Perl module Hash::SharedMem
6430869Sjmg# <https://metacpan.org/release/Hash-SharedMem> defines a file format
6530869Sjmg# for a key/value store.  Details of the file format are in the "DESIGN"
6629415Sjmg# file in the module distribution.  Magic:
6730869Sjmg0	bequad	=0xa58afd185cbf5af7	Hash::SharedMem master file, big-endian
6830869Sjmg>8	bequad	<0x1000000
6930869Sjmg>>15	byte	>2	\b, line size 2^%d byte
7030869Sjmg>>14	byte	>2	\b, page size 2^%d byte
7130869Sjmg>>13	byte	&1
7230869Sjmg>>>13	byte	>1	\b, max fanout %d
7330869Sjmg0	lequad	=0xa58afd185cbf5af7	Hash::SharedMem master file, little-endian
7430869Sjmg>8	lequad	<0x1000000
7530869Sjmg>>8	byte	>2	\b, line size 2^%d byte
7630869Sjmg>>9	byte	>2	\b, page size 2^%d byte
7730869Sjmg>>10	byte	&1
7830869Sjmg>>>10	byte	>1	\b, max fanout %d
7930869Sjmg0	bequad	=0xc693dac5ed5e47c2	Hash::SharedMem data file, big-endian
8030869Sjmg>8	bequad	<0x1000000
8130869Sjmg>>15	byte	>2	\b, line size 2^%d byte
8229415Sjmg>>14	byte	>2	\b, page size 2^%d byte
8329415Sjmg>>13	byte	&1
8429415Sjmg>>>13	byte	>1	\b, max fanout %d
8530869Sjmg0	lequad	=0xc693dac5ed5e47c2	Hash::SharedMem data file, little-endian
8629415Sjmg>8	lequad	<0x1000000
8729415Sjmg>>8	byte	>2	\b, line size 2^%d byte
8830869Sjmg>>9	byte	>2	\b, page size 2^%d byte
8929415Sjmg>>10	byte	&1
9029415Sjmg>>>10	byte	>1	\b, max fanout %d
9129415Sjmg