1103373Sobrien#------------------------------------------------------------------------------
2284778Sdelphij# $File: perl,v 1.24 2015/03/27 17:58:58 christos Exp $
3103373Sobrien# perl:  file(1) magic for Larry Wall's perl language.
4103373Sobrien#
5186690Sobrien# The `eval' lines recognizes an outrageously clever hack.
6103373Sobrien# Keith Waclena <keith@cerberus.uchicago.edu>
7103373Sobrien# Send additions to <perl5-porters@perl.org>
8284778Sdelphij0	search/1024	eval\ "exec\ perl		Perl script text
9186690Sobrien!:mime	text/x-perl
10284778Sdelphij0	search/1024	eval\ "exec\ /bin/perl		Perl script text
11186690Sobrien!:mime	text/x-perl
12284778Sdelphij0	search/1024	eval\ "exec\ /usr/bin/perl	Perl script text
13186690Sobrien!:mime	text/x-perl
14284778Sdelphij0	search/1024	eval\ "exec\ /usr/local/bin/perl	Perl script text
15186690Sobrien!:mime	text/x-perl
16284778Sdelphij0	search/1024	eval\ 'exec\ perl		Perl script text
17234250Sobrien!:mime	text/x-perl
18284778Sdelphij0	search/1024	eval\ 'exec\ /bin/perl		Perl script text
19234250Sobrien!:mime	text/x-perl
20284778Sdelphij0	search/1024	eval\ 'exec\ /usr/bin/perl	Perl script text
21267843Sdelphij!:mime	text/x-perl
22284778Sdelphij0	search/1024	eval\ 'exec\ /usr/local/bin/perl	Perl script text
23284778Sdelphij!:mime	text/x-perl
24284778Sdelphij0	search/1024	eval\ '(exit\ $?0)'\ &&\ eval\ 'exec	Perl script text
25284778Sdelphij!:mime	text/x-perl
26284778Sdelphij0	search/1024	#!/usr/bin/env\ perl	Perl script text executable
27284778Sdelphij!:mime	text/x-perl
28284778Sdelphij0	search/1024	#!\ /usr/bin/env\ perl	Perl script text executable
29284778Sdelphij!:mime	text/x-perl
30284778Sdelphij0	search/1024	#!
31284778Sdelphij>0	regex	\^#!.*/bin/perl([[:space:]].*)*$	Perl script text executable
32284778Sdelphij!:mime	text/x-perl
33103373Sobrien
34169962Sobrien# by Dmitry V. Levin and Alexey Tourbin
35169962Sobrien# check the first line
36284778Sdelphij0	search/1024	package
37186690Sobrien>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;	Perl5 module source text
38267843Sdelphij!:strength + 10
39169962Sobrien# not 'p', check other lines
40284778Sdelphij0	search/1024	!p
41169962Sobrien>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;
42169962Sobrien>>0	regex		\^1\ *;|\^(use|sub|my)\ .*[(;{=]	Perl5 module source text
43267843Sdelphij!:strength + 10
44169962Sobrien
45159764Sobrien# Perl POD documents
46159764Sobrien# From: Tom Hukins <tom@eborcom.com>
47284778Sdelphij0	search/1024/W	\=pod\n		Perl POD document text
48284778Sdelphij0	search/1024/W	\n\=pod\n	Perl POD document text
49284778Sdelphij0	search/1024/W	\=head1\ 	Perl POD document text
50284778Sdelphij0	search/1024/W	\n\=head1\ 	Perl POD document text
51284778Sdelphij0	search/1024/W	\=head2\ 	Perl POD document text
52284778Sdelphij0	search/1024/W	\n\=head2\ 	Perl POD document text
53284778Sdelphij0	search/1024/W	\=encoding\ 	Perl POD document text
54284778Sdelphij0	search/1024/W	\n\=encoding\ 	Perl POD document text
55159764Sobrien
56267843Sdelphij
57139368Sobrien# Perl Storable data files.
58186690Sobrien0	string	perl-store	perl Storable (v0.6) data
59139368Sobrien>4	byte	>0	(net-order %d)
60139368Sobrien>>4	byte	&01	(network-ordered)
61139368Sobrien>>4	byte	=3	(major 1)
62139368Sobrien>>4	byte	=2	(major 1)
63139368Sobrien
64186690Sobrien0	string	pst0	perl Storable (v0.7) data
65139368Sobrien>4	byte	>0
66139368Sobrien>>4	byte	&01	(network-ordered)
67139368Sobrien>>4	byte	=5	(major 2)
68139368Sobrien>>4	byte	=4	(major 2)
69139368Sobrien>>5	byte	>0	(minor %d)
70267843Sdelphij
71267843Sdelphij# This is Debian #742949 by Zefram <zefram@fysh.org>:
72267843Sdelphij# -----------------------------------------------------------
73267843Sdelphij# The Perl module Hash::SharedMem
74267843Sdelphij# <https://metacpan.org/release/Hash-SharedMem> defines a file format
75267843Sdelphij# for a key/value store.  Details of the file format are in the "DESIGN"
76267843Sdelphij# file in the module distribution.  Magic:
77267843Sdelphij0	bequad	=0xa58afd185cbf5af7	Hash::SharedMem master file, big-endian
78267843Sdelphij>8	bequad	<0x1000000
79267843Sdelphij>>15	byte	>2	\b, line size 2^%d byte
80267843Sdelphij>>14	byte	>2	\b, page size 2^%d byte
81267843Sdelphij>>13	byte	&1
82267843Sdelphij>>>13	byte	>1	\b, max fanout %d
83267843Sdelphij0	lequad	=0xa58afd185cbf5af7	Hash::SharedMem master file, little-endian
84267843Sdelphij>8	lequad	<0x1000000
85267843Sdelphij>>8	byte	>2	\b, line size 2^%d byte
86267843Sdelphij>>9	byte	>2	\b, page size 2^%d byte
87267843Sdelphij>>10	byte	&1
88267843Sdelphij>>>10	byte	>1	\b, max fanout %d
89267843Sdelphij0	bequad	=0xc693dac5ed5e47c2	Hash::SharedMem data file, big-endian
90267843Sdelphij>8	bequad	<0x1000000
91267843Sdelphij>>15	byte	>2	\b, line size 2^%d byte
92267843Sdelphij>>14	byte	>2	\b, page size 2^%d byte
93267843Sdelphij>>13	byte	&1
94267843Sdelphij>>>13	byte	>1	\b, max fanout %d
95267843Sdelphij0	lequad	=0xc693dac5ed5e47c2	Hash::SharedMem data file, little-endian
96267843Sdelphij>8	lequad	<0x1000000
97267843Sdelphij>>8	byte	>2	\b, line size 2^%d byte
98267843Sdelphij>>9	byte	>2	\b, page size 2^%d byte
99267843Sdelphij>>10	byte	&1
100267843Sdelphij>>>10	byte	>1	\b, max fanout %d
101