xref: /openbsd-src/usr.bin/file/magdir/perl (revision 0ee74395949c27152548431c5cb896cb486a0866)
1*0ee74395Schl#	$OpenBSD: perl,v 1.3 2009/04/24 18:54:34 chl Exp $
2380b5c7dSchl
3380b5c7dSchl#------------------------------------------------------------------------------
4380b5c7dSchl# perl:  file(1) magic for Larry Wall's perl language.
5380b5c7dSchl#
6*0ee74395Schl# The `eval' lines recognizes an outrageously clever hack.
7380b5c7dSchl# Keith Waclena <keith@cerberus.uchicago.edu>
8380b5c7dSchl# Send additions to <perl5-porters@perl.org>
9*0ee74395Schl0	search/1/b	#!\ /bin/perl			Perl script text executable
10*0ee74395Schl!:mime	application/x-perl
11*0ee74395Schl0	search/1	eval\ "exec\ /bin/perl		Perl script text
12*0ee74395Schl!:mime	application/x-perl
13*0ee74395Schl0	search/1/b	#!\ /usr/bin/perl		Perl script text executable
14*0ee74395Schl!:mime	application/x-perl
15*0ee74395Schl0	search/1	eval\ "exec\ /usr/bin/perl	Perl script text
16*0ee74395Schl!:mime	application/x-perl
17*0ee74395Schl0	search/1/b	#!\ /usr/local/bin/perl		Perl script text executable
18*0ee74395Schl!:mime	application/x-perl
19*0ee74395Schl0	search/1	eval\ "exec\ /usr/local/bin/perl	Perl script text
20*0ee74395Schl!:mime	application/x-perl
21*0ee74395Schl0	search/1	eval\ '(exit\ $?0)'\ &&\ eval\ 'exec	Perl script text
22*0ee74395Schl!:mime	application/x-perl
23380b5c7dSchl
24380b5c7dSchl
25380b5c7dSchl# by Dmitry V. Levin and Alexey Tourbin
26380b5c7dSchl# check the first line
27*0ee74395Schl0	search/1	package
28*0ee74395Schl0	regex		\^package[\ \t]+[A-Za-z_]
29*0ee74395Schl>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;	Perl5 module source text
30380b5c7dSchl# not 'p', check other lines
31*0ee74395Schl0	search/1	!p
32380b5c7dSchl>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;
33380b5c7dSchl>>0	regex		\^1\ *;|\^(use|sub|my)\ .*[(;{=]	Perl5 module source text
34380b5c7dSchl
35380b5c7dSchl
36380b5c7dSchl
37380b5c7dSchl# Perl POD documents
38380b5c7dSchl# From: Tom Hukins <tom@eborcom.com>
39*0ee74395Schl0	search/1/B	\=pod\n		Perl POD document text
40*0ee74395Schl0	search/1/B	\n\=pod\n	Perl POD document text
41*0ee74395Schl0	search/1/B	\=head1\ 	Perl POD document text
42*0ee74395Schl0	search/1/B	\n\=head1\ 	Perl POD document text
43*0ee74395Schl0	search/1/B	\=head2\ 	Perl POD document text
44*0ee74395Schl0	search/1/B	\n\=head2\ 	Perl POD document text
45380b5c7dSchl
46380b5c7dSchl# Perl Storable data files.
47380b5c7dSchl0	string	perl-store	perl Storable (v0.6) data
48380b5c7dSchl>4	byte	>0	(net-order %d)
49380b5c7dSchl>>4	byte	&01	(network-ordered)
50380b5c7dSchl>>4	byte	=3	(major 1)
51380b5c7dSchl>>4	byte	=2	(major 1)
52380b5c7dSchl
53380b5c7dSchl0	string	pst0	perl Storable (v0.7) data
54380b5c7dSchl>4	byte	>0
55380b5c7dSchl>>4	byte	&01	(network-ordered)
56380b5c7dSchl>>4	byte	=5	(major 2)
57380b5c7dSchl>>4	byte	=4	(major 2)
58380b5c7dSchl>>5	byte	>0	(minor %d)
59