| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > простой пингер |
| Автор: trinitr0 18.11.2013, 13:13 | ||
Пытаюсь написать простой пингер:
но он в любом случае возвращает всегда "OK". Подскажите пожалуйста! |
| Автор: od0201 18.11.2013, 13:42 |
| если if ($line =~ /\s+(\d+)% packet loss/) истина то if ($line eq '100') всегда будет ложью попробуйте if ($1 eq '100') |
| Автор: trinitr0 18.11.2013, 14:13 | ||
| спасибо! Помогло! Но можно пару слов объснения?
Что содержится в данном случае в $1? |
| Автор: Bulat 18.11.2013, 14:29 |
Результат вышеуказанной конструкции в регулярном выражении. Подробно почитай хотя бы чуть-чуть про регулряные выражения в перл |
| Автор: od0201 18.11.2013, 14:34 |
| $line =~ /\s+(\d+)% packet loss/ у Вас регулярное выражение (поиск в строке) где \d+ значает цифры в количестве 1 и более штук, () означают копирование их содержимого в $1,$2,$3..., в Вашем случае цифры, если они будут найдены упадут в $1 и $line остается неизменным при поиске... |
| Автор: trinitr0 18.11.2013, 15:59 |
| Всё совершенно ясно! Я приблизетельно так и предполагал что дело в ссылках назад, но небоьшой опыт не позволил достич полного просветления Спасибо вам od0201 за развёрнутый ответ! Bulat - тоже спасибки! |