Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Fastest way to minimally check that file contains perl code?

by haukex (Archbishop)
on Mar 13, 2020 at 12:37 UTC ( [id://11114219]=note: print w/replies, xml ) Need Help??


in reply to Fastest way to minimally check that file contains perl code?

For me it is absolutely enough to know that, say, file XXX is a perl source file with a probability of 80%. ... I tried file and ohlohcount utilities as well, but its assumptions is VERY inaccurate.

How inaccurate is file exactly? What test cases did it have trouble with? I would have thought that if you don't need accuracy, something like checking the first couple of lines against a regex that looks for the shebang line and/or some use statements might be enough for ~80%, but I think you'll need to be more specific in your question for more specific answers. Only perl can parse Perl; I think solutions like PPI will likely be slower. You could try PPR:

use PPR; my $perl_code = <<'END'; #!/usr/bin/env perl use warnings; use strict; print "Hello, World!\n"; END if ( $perl_code =~ m{ \A (?&PerlDocument) \Z $PPR::GRAMMAR }x ) { print "It looks like it could parse as Perl\n" } else { print "It doesn't look like Perl\n" }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11114219]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2024-04-24 22:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found