Перейти к содержимому
ThomasXIII

Perl, elif и регэкспы.

Рекомендуемые сообщения

Добрый день. Есть текстовый файл, из него надо выдернуть информацию разного рода. Есть переменная $state которая по заголовку определяет, что именно мы сейчас читаем. Далее из текущего состояния и соответствия регэкспу (между данными и заголовком есть ненужные строки) начинаем дергать данные. Есть 2 состояния: 'ts' и 'hs', данные соответствуют одному и тому же регэкспу (кривописанному, но пока стоит задача "чтобы работало хоть как-то"): /[A-Z_]+[\d\s]{7,}\d{0,3}\.\d{1,2}$/. Т.е. сперва имя заглавными буквами и подчерком, потом несколько столбцов цифр через пробельные символы затем число, отображающее проценты с одним или 2 знаками после запятой. Соответственно, есть кусок:

elsif ($state=="ts" and $str=~/[A-Z_]+[\d\s]{7,}\d{0,3}\.\d{1,2}$/)	{		#Делать дело	}elsif ($state=="hs" and $str=~/[A-Z_]+[\d\s]{7,}\d{0,3}\.\d{1,2}$/)	{		#Делать другое дело	}

В общем, структура данных одна, действия разные, в зависимости от заголовка. Беда в том, что вне зависимости от переменной $state при соответствии регэкспу все равно выполняется другой блок. Я даже вообще в коде исключил возможность переменной $state принимать значение 'hs', все равно при проверке попадаем в первый блок. Как это исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...