perl 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #------------------------------------------------------------------------------
  2. # perl: file(1) magic for Larry Wall's perl language.
  3. #
  4. # The `eval' lines recognizes an outrageously clever hack.
  5. # Keith Waclena <keith@cerberus.uchicago.edu>
  6. # Send additions to <perl5-porters@perl.org>
  7. 0 search/1/b #!\ /bin/perl Perl script text executable
  8. !:mime text/x-perl
  9. 0 search/1 eval\ "exec\ /bin/perl Perl script text
  10. !:mime text/x-perl
  11. 0 search/1/b #!\ /usr/bin/perl Perl script text executable
  12. !:mime text/x-perl
  13. 0 search/1 eval\ "exec\ /usr/bin/perl Perl script text
  14. !:mime text/x-perl
  15. 0 search/1/b #!\ /usr/local/bin/perl Perl script text executable
  16. !:mime text/x-perl
  17. 0 search/1 eval\ "exec\ /usr/local/bin/perl Perl script text
  18. !:mime text/x-perl
  19. 0 search/1 eval\ '(exit\ $?0)'\ &&\ eval\ 'exec Perl script text
  20. !:mime text/x-perl
  21. # by Dmitry V. Levin and Alexey Tourbin
  22. # check the first line
  23. 0 search/1 package
  24. >0 regex \^package[\ \t]+[0-9A-Za-z_:]+\ *; Perl5 module source text
  25. # not 'p', check other lines
  26. 0 search/1 !p
  27. >0 regex \^package[\ \t]+[0-9A-Za-z_:]+\ *;
  28. >>0 regex \^1\ *;|\^(use|sub|my)\ .*[(;{=] Perl5 module source text
  29. # Perl POD documents
  30. # From: Tom Hukins <tom@eborcom.com>
  31. 0 search/1/B \=pod\n Perl POD document text
  32. 0 search/1/B \n\=pod\n Perl POD document text
  33. 0 search/1/B \=head1\ Perl POD document text
  34. 0 search/1/B \n\=head1\ Perl POD document text
  35. 0 search/1/B \=head2\ Perl POD document text
  36. 0 search/1/B \n\=head2\ Perl POD document text
  37. # Perl Storable data files.
  38. 0 string perl-store perl Storable (v0.6) data
  39. >4 byte >0 (net-order %d)
  40. >>4 byte &01 (network-ordered)
  41. >>4 byte =3 (major 1)
  42. >>4 byte =2 (major 1)
  43. 0 string pst0 perl Storable (v0.7) data
  44. >4 byte >0
  45. >>4 byte &01 (network-ordered)
  46. >>4 byte =5 (major 2)
  47. >>4 byte =4 (major 2)
  48. >>5 byte >0 (minor %d)