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