не всегда. Распостраненная ошибка новичков, кстати с работой функции shift. Пожалуй автору стоит познакомиться с ламабуком для того, чтобы лучше понимать Перл. А поведение конкретно функции shift распишет
$ perldoc -f shift
Perl язык неочевидных тонкостей, привыкайте. А вот если нужен one way очевидности, то это уже питон.
Да, в контексте функции всегда. Но я помню как сам ошибся, неправильно использовав ее вне функции. Вы правильно сказали, но слишком широко. И пока программист не привык уточнять и проверять такие вещи (а судя по коду и посту, человек с нуля начал писать сразу на Perl) ему стоит уточнять, что тут тоже есть всегда более, чем один путь развития событий… :D
Да нет, не с нуля. Искренне надеюсь, что хоть на джуниора меня уже хватит. Так что критика приветствуется.
На качество кода однозначно сказалось то, что от первого знакомства с языком до изложенного скрипта прошёл 1 день. Действительно, не вникал во все тонкости языка.
И не стоит думать, что прежде, чем написать комментарий, я не прочёл ман на shift и не поглядел, когда с какими данными работает по-умолчанию. Наоборот, потому и выразил сомнение, решив, что $_[0] лучше указывает на то, с чем работаем, чем shift. В общем, здесь уже больше роль играют принятые негласные стандарты написания.
Эх… Хотел написать такой скрипт для роутера на системе MirotikOS — так там https не поддерживается, а в другой роутер на базе OpenWRT не могу впихнуть curl, т.к. флеш очень маленький.
Как будет свободное время — попробую на какой-нибудь бесплатном хостинге с поддержкой php и curl сделать скрипт.
Очень не хочется плодить сущности. И так два роутера на столе. Один проводной MikroTik и Dlink 615 прошитый в OpenWRT, как точка доступа WiFi.
Держать ещё один в виртуалке в микторике лишь для того, чтобы обновлять DNS — это я считаю лишней тратой ресурсов. Тем более микротик у меня один из самых слабеньких, 750GL.
Делаем dDNS-клиент для DNS Яндекса