В чем ошибка в ruby?

Добрый день! Начал изучать Ruby по учебнику Хэла Фултона. Пытаюсь воспроизвести у себя код из примера, и, соответственно, разобрать его:
#!/usr/bin/ruby
#coding: utf-8
require 'colorize'

print "Введите температуру и шкалу (C or F):"
str = gets 
exit if str.nil? or str.empty?
str.chomp!
temp, scale = str.split(" ")
abort "#{temp} недопустимое число."  if temp !~ /-?/\d+/

temp = temp.to_f
case scale
    when "C", "c"
        f=1.8*temp + 32
    when "F", "f"
        c=(5.0/9.0) * (temp-32)
else
    abort "Необходимо задать C или F\n"
end
if f.nil?
    print "#{c} градусов C\n"
else
    print "#{f} градусов F\n"
end


Получаю следующую ошибку:
./begin.rb:10: syntax error, unexpected $undefined, expecting $end
... число."  if temp !~ /-?/\d+/
...                               ^


Прошу помощи и жду ответов в стиле "УЧИ МАТЧАСТЬ, НУБ [ссылка]"
Я понимаю, что интерпретатор, скорее всего, выдает мне достаточное количество информации для анализа, если бы у меня был какой-либо опыт в ruby, однако на текущем моменте, я не имею возможности понять в чем ошибка в программе, которую я скопипастил, так как ни разу не смог её запустить при наличии в ней кусочка кода на котором все валится.

версия ruby:
# ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
  • Вопрос задан
  • 2424 просмотра
Решения вопроса 2
HighQuality
@HighQuality
☁ Ниндзя девелопер
/-?/\d+/
Скорее всего после ? не должен идти знак /. Зачем он там?
Ответ написан
viktorvsk
@viktorvsk
Видимо, что-то не так в регулярном выражении /-?/\d+/
Надо понять, что вам нужно в нем получить и написать правильно.
Проверять удобно здесь: rubular.com
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webus
@webus
Golang | Python | NodeJS | Java
Я бы первым делом Руби обновил. Как никак а за 2 года
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
он по-шустрее стал.
Ответ написан
abort "#{temp} недопустимое число."  if temp !~ /-?/\d+/


Должно быть !=~
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы