У меня есть это условие в Perl-скрипте:
if ($lnFea =~ m/^(\d+) qid\:([^\s]+).*?\#docid = ([^\s]+) inc = ([^\s]+) prob = ([^\s]+)$/)
и $ lnFea представляет такую строку:
0 qid: 7968 1: 0,000000 2: 0,000000 3: 0,000000 4: 0,000000 5: 0,000000 6: 0,000000 7: 0,000000 8: 0,000000 9: 0,000000 10: 0,000000 11: 0,000000 12: 0,000000 13: 0,000000 14: 0,000000 15 : 0,000000 16: 0,005175 17: 0,000000 18: 0,181818 19: 0,000000 20: 0,003106 21: 0,000000 22: 0,000000 23: 0,000000 24: 0,000000 25: 0,000000 26: 0,000000 27: 0,000000 28: 0,000000 29: 0,000000 30: 0,000000 31: 0,000000 32: 0,000000 33: 0,000000 34: 0,000000 35: 0,000000 36: 0,000000 37: 0,000000 38: 0,000000 39: 0,000000 40: 0,000000 41: 0,000000 42: 0,000000 43: 0,055556 44: 0,000000 45: 0,000000 46: 0,000000 # документ = GX000- 00-0000000 inc = 1 prob = 0.0214125
Проблема заключается в том, что if истинно в Windows, но ложно в Linux (Fedora 11). Обе системы используют самую последнюю версию Perl. Так в чем же причина этой проблемы?