diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 221330b8..70fc2787 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -344,11 +344,11 @@ module Linguist end end - disambiguate ".pm", ".t" do |data| - if /use strict|use\s+v?5\./.match(data) - Language["Perl"] - elsif /^(use v6|(my )?class|module)/.match(data) + disambiguate ".pm" do |data| + if /^\s*(?:use\s+v6\s*;|(?:\bmy\s+)?class|module)\b/.match(data) Language["Perl6"] + elsif /\buse\s+(?:strict\b|v?5\.)/.match(data) + Language["Perl"] end end @@ -443,10 +443,12 @@ module Linguist end disambiguate ".t" do |data| - if /^\s*%|^\s*var\s+\w+\s*:\s*\w+/.match(data) + if /^\s*%[ \t]+|^\s*var\s+\w+\s*:=\s*\w+/.match(data) Language["Turing"] - elsif /^\s*use\s+v6\s*;/.match(data) + elsif /^\s*(?:use\s+v6\s*;|\bmodule\b|\b(?:my\s+)?class\b)/.match(data) Language["Perl6"] + elsif /\buse\s+(?:strict\b|v?5\.)/.match(data) + Language["Perl"] end end