diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ee1a3625..a28b054a 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -92,7 +92,7 @@ module Linguist disambiguate "Perl", "Perl6", "Prolog" do |data| if data.include?("use v6") Language["Perl6"] - elsif data.include?("use strict") + elsif data.match(/use strict|use\s+v?5\./) Language["Perl"] elsif data.include?(":-") Language["Prolog"] diff --git a/samples/Perl/use5.pl b/samples/Perl/use5.pl new file mode 100644 index 00000000..de7d248c --- /dev/null +++ b/samples/Perl/use5.pl @@ -0,0 +1,3 @@ +use Mojolicious::Lite; +use 5.20.0; +use experimental 'signatures'; diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 3ea4af78..02671b78 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -48,7 +48,7 @@ class TestHeuristcs < Minitest::Test def test_pl_prolog_perl_by_heuristics assert_heuristics({ "Prolog" => "Prolog/turing.pl", - "Perl" => "Perl/perl-test.t", + "Perl" => ["Perl/perl-test.t", "Perl/use5.pl"] }) end