xref: /freebsd/contrib/file/magic/Magdir/perl (revision 898496ee09ed2b7d25f6807edc4515628196ec0a)
1b6cee71dSXin LI#------------------------------------------------------------------------------
2*898496eeSXin LI# $File: perl,v 1.27 2023/07/17 16:01:36 christos Exp $
3b6cee71dSXin LI# perl:  file(1) magic for Larry Wall's perl language.
4b6cee71dSXin LI#
5b6cee71dSXin LI# The `eval' lines recognizes an outrageously clever hack.
6b6cee71dSXin LI# Keith Waclena <keith@cerberus.uchicago.edu>
7b6cee71dSXin LI# Send additions to <perl5-porters@perl.org>
85f0216bdSXin LI0	search/1024	eval\ "exec\ perl		Perl script text
9b6cee71dSXin LI!:mime	text/x-perl
105f0216bdSXin LI0	search/1024	eval\ "exec\ /bin/perl		Perl script text
11b6cee71dSXin LI!:mime	text/x-perl
125f0216bdSXin LI0	search/1024	eval\ "exec\ /usr/bin/perl	Perl script text
13b6cee71dSXin LI!:mime	text/x-perl
145f0216bdSXin LI0	search/1024	eval\ "exec\ /usr/local/bin/perl	Perl script text
15b6cee71dSXin LI!:mime	text/x-perl
165f0216bdSXin LI0	search/1024	eval\ 'exec\ perl		Perl script text
17b6cee71dSXin LI!:mime	text/x-perl
185f0216bdSXin LI0	search/1024	eval\ 'exec\ /bin/perl		Perl script text
19b6cee71dSXin LI!:mime	text/x-perl
205f0216bdSXin LI0	search/1024	eval\ 'exec\ /usr/bin/perl	Perl script text
215f0216bdSXin LI!:mime	text/x-perl
225f0216bdSXin LI0	search/1024	eval\ 'exec\ /usr/local/bin/perl	Perl script text
235f0216bdSXin LI!:mime	text/x-perl
245f0216bdSXin LI0	search/1024	eval\ '(exit\ $?0)'\ &&\ eval\ 'exec	Perl script text
255f0216bdSXin LI!:mime	text/x-perl
26282e23f0SXin LI0	string	#!/usr/bin/env\ perl	Perl script text executable
275f0216bdSXin LI!:mime	text/x-perl
28282e23f0SXin LI0	string	#!\ /usr/bin/env\ perl	Perl script text executable
295f0216bdSXin LI!:mime	text/x-perl
30282e23f0SXin LI0	string	#!
315f0216bdSXin LI>0	regex	\^#!.*/bin/perl([[:space:]].*)*$	Perl script text executable
32b6cee71dSXin LI!:mime	text/x-perl
33b6cee71dSXin LI
34b6cee71dSXin LI# by Dmitry V. Levin and Alexey Tourbin
35b6cee71dSXin LI# check the first line
3640427ccaSGordon Tetlow0	search/8192	package
37*898496eeSXin LI>0	regex		\^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*([[:space:]]v?[0-9][0-9.]*)?[[:space:]]*;	Perl5 module source text
3840427ccaSGordon Tetlow!:strength + 40
39b6cee71dSXin LI# not 'p', check other lines
4040427ccaSGordon Tetlow0	search/8192	!p
41*898496eeSXin LI>0	regex		\^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*([[:space:]]v?[0-9][0-9.]*)?[[:space:]]*;
42*898496eeSXin LI>>0	regex		\^1[[:space:]]*;|\^(use|sub|my)[[:space:]].*[(;{=]	Perl5 module source text
4340427ccaSGordon Tetlow!:strength + 75
44b6cee71dSXin LI
45b6cee71dSXin LI# Perl POD documents
46b6cee71dSXin LI# From: Tom Hukins <tom@eborcom.com>
475f0216bdSXin LI0	search/1024/W	\=pod\n		Perl POD document text
485f0216bdSXin LI0	search/1024/W	\n\=pod\n	Perl POD document text
495f0216bdSXin LI0	search/1024/W	\=head1\ 	Perl POD document text
505f0216bdSXin LI0	search/1024/W	\n\=head1\ 	Perl POD document text
515f0216bdSXin LI0	search/1024/W	\=head2\ 	Perl POD document text
525f0216bdSXin LI0	search/1024/W	\n\=head2\ 	Perl POD document text
535f0216bdSXin LI0	search/1024/W	\=encoding\ 	Perl POD document text
545f0216bdSXin LI0	search/1024/W	\n\=encoding\ 	Perl POD document text
55b6cee71dSXin LI
56b6cee71dSXin LI
57b6cee71dSXin LI# Perl Storable data files.
58b6cee71dSXin LI0	string	perl-store	perl Storable (v0.6) data
59b6cee71dSXin LI>4	byte	>0	(net-order %d)
60b6cee71dSXin LI>>4	byte	&01	(network-ordered)
61b6cee71dSXin LI>>4	byte	=3	(major 1)
62b6cee71dSXin LI>>4	byte	=2	(major 1)
63b6cee71dSXin LI
64b6cee71dSXin LI0	string	pst0	perl Storable (v0.7) data
65b6cee71dSXin LI>4	byte	>0
66b6cee71dSXin LI>>4	byte	&01	(network-ordered)
67b6cee71dSXin LI>>4	byte	=5	(major 2)
68b6cee71dSXin LI>>4	byte	=4	(major 2)
69b6cee71dSXin LI>>5	byte	>0	(minor %d)
70b6cee71dSXin LI
71b6cee71dSXin LI# This is Debian #742949 by Zefram <zefram@fysh.org>:
72b6cee71dSXin LI# -----------------------------------------------------------
73b6cee71dSXin LI# The Perl module Hash::SharedMem
74b6cee71dSXin LI# <https://metacpan.org/release/Hash-SharedMem> defines a file format
75b6cee71dSXin LI# for a key/value store.  Details of the file format are in the "DESIGN"
76b6cee71dSXin LI# file in the module distribution.  Magic:
77b6cee71dSXin LI0	bequad	=0xa58afd185cbf5af7	Hash::SharedMem master file, big-endian
78b6cee71dSXin LI>8	bequad	<0x1000000
79b6cee71dSXin LI>>15	byte	>2	\b, line size 2^%d byte
80b6cee71dSXin LI>>14	byte	>2	\b, page size 2^%d byte
81b6cee71dSXin LI>>13	byte	&1
82b6cee71dSXin LI>>>13	byte	>1	\b, max fanout %d
83b6cee71dSXin LI0	lequad	=0xa58afd185cbf5af7	Hash::SharedMem master file, little-endian
84b6cee71dSXin LI>8	lequad	<0x1000000
85b6cee71dSXin LI>>8	byte	>2	\b, line size 2^%d byte
86b6cee71dSXin LI>>9	byte	>2	\b, page size 2^%d byte
87b6cee71dSXin LI>>10	byte	&1
88b6cee71dSXin LI>>>10	byte	>1	\b, max fanout %d
89b6cee71dSXin LI0	bequad	=0xc693dac5ed5e47c2	Hash::SharedMem data file, big-endian
90b6cee71dSXin LI>8	bequad	<0x1000000
91b6cee71dSXin LI>>15	byte	>2	\b, line size 2^%d byte
92b6cee71dSXin LI>>14	byte	>2	\b, page size 2^%d byte
93b6cee71dSXin LI>>13	byte	&1
94b6cee71dSXin LI>>>13	byte	>1	\b, max fanout %d
95b6cee71dSXin LI0	lequad	=0xc693dac5ed5e47c2	Hash::SharedMem data file, little-endian
96b6cee71dSXin LI>8	lequad	<0x1000000
97b6cee71dSXin LI>>8	byte	>2	\b, line size 2^%d byte
98b6cee71dSXin LI>>9	byte	>2	\b, page size 2^%d byte
99b6cee71dSXin LI>>10	byte	&1
100b6cee71dSXin LI>>>10	byte	>1	\b, max fanout %d
101