Поверь на слово, просто не изучай ни тот, ни другой. Пятая версия еще живет как скриптовый язык на всяких юниксах, мейнфреймах и прочих пережитках прошлого, ну или иногда(ОЧЕНЬ редко) используется в вебе.
Если говорить про веб - то вакансий таких ты вообще не найдешь, разве что где-то в Европе.
Если про юниксы и тд - то перл тут просто приятный бонус к основной работе. К примеру устраиваешься админом и должен знать работу ОС, сеть, виртуализацию(ну и море всего еще), еще должен знать скриптование на bash/python/perl/lua. Вакансии обычно так и выглядят, то есть знаешь все что надо для работы - все ок, знаешь еще и перл - ну ладно, не знаешь - опять же ладно, всем плевать.
Шестой же появился не так давно, ну и он мертворожденный(ИМХО). Синтаксис сложен и непонятен, совершенно не похож на 5 версию, то есть фактически новый язык. Ну и еще он под веб заточен, это во время питона, жабаскрипта и всего прочего, рынок уже перенасыщен такими продуктами.
Я это все знаю потому что с ним работал последние года 3, ну и вот собственно мой опыт.
Perl 5 - мертвый язык. Умер в коммерческой разработке в 2005м году. Учить и использовать рекомендуется другие ЯП с динамической типизацией. В 2007м году начал использовать его в коммерческих проектах (довольно масштабных), знаю о чем говорю.
Perl 6 - мертворожденный язык. Нет библиотек, довольно высокий порог входжения, низкая производительность, нет коммьюнити, нет нормальных книг/блогов/подкастов.
Питон? Или есть что-то получше? Хотелось бы, чтобы не было очень сложно для изучения. С другой стороны практичность тоже важна. У perl очень много готовых модулей с хорошей документацией.
Ну тогда да, тогда питон. Я его конечно сам не учил, но он используется в таких задачах повсеместно, он пришел на смену перлу. Там и модулей и документации навалом, куча всяких форумов. В плане изучения - на нем сейчас вроде как CS изучают в Европах и Америках. Если бы язык был тяжел для изучения - пользовались бы другим. А так все преподавание сейчас идет на нем, в универах так точно.
Perl6 для твоих задач не подходит. Это другой язык.
Для какой-то мелкосистемной автоматизации Perl5 отлично подходит. Для коммерческой разработки в России лучше брать что-нибудь другое.
Если знаешь какие-нибудь ещё языки (bash там или c), тогда полистай какой-нибудь букварик по Perl5(Learning Perl например. Если нет, то наверное бери Python (правда возможно огребешь от сломанной совместимости между 3 и 2).
На Perl5 очень легко писать и к сожалению легко писать достаточно небрежно, что в некоторых случаях может вызывать трудности с сопровождением.
Perl 5 - мертвый язык. Умер в коммерческой разработке в 2005м году. Учить и использовать рекомендуется другие ЯП с динамической типизацией. В 2007м году начал использовать его в коммерческих проектах (довольно масштабных), знаю о чем говорю.
Чистая правда. Говорю как писавший на perl5 коммерческие проекты как раз где-то с 2005 по 2007, и мучительно переписывающий легаси перловый код уже совсем в другом месте сейчас.
Perl 6 - мертворожденный язык. Нет библиотек, довольно высокий порог входжения, низкая производительность, нет коммьюнити, нет нормальных книг/блогов/подкастов.
Проблема Perl'а не в том что на нём можно НЕБРЕЖНО ПИСАТЬ. Так писать можно на любом языке, а перловое TIMTOWTDI напротив служит большей выразительности.
Проблема в том, что в мозг средней макаки не взлезает более одного варианта написания какой-либо конструкции.
Перл годен только для работы с текстовыми данными. Работать с симлинками как с симлинками (без дереференса) он не умеет совсем. С бинарными данными им ещё можно работать, но надо уметь.
Если тебе хочется чего-то универсального, то выбирай (мерзкий) питон.
Питон. В общем-то всем устраивает но кое-где перестаёт хватать его производительности, поэтому я подумываю изучить также и go.
Еще есть ruby, clojure, lua.
Можно даже не смотреть. lua это игрушка для встраивания, clojure это маргинальные скобки вместо языка и java вместо целевого использования ресурсов вашей машины, ruby на любителя, по мне так он отстаёт от питона по всем параметрам и имеет отвратный синтаксис.
Работать с симлинками как с симлинками (без дереференса) он не умеет совсем
И как это, интересно, вы собрались с ними работать? lstat/readlink/symlink в перле есть, больше для работы с симлинками ничего не надо. Собственно, ничего и нет. Ни в каких языках.
Я из тех сумасшедших, кто, не слушая советов, освоил пару лет назад Perl 5.
После JavaScript и Erlang мне изучение далось легко.
Другой вопрос — использование. Если пользовать для себя, то можно даже получать удовольствие. Я вот, бывает, наперлокодю и долго смеюсь над получившимся результатом. Если же хотите работу найти, то ни Perl 5, ни тем более Perl 6 вам в этом не помогут.
Ничем. Но могут быть технические проблемы на разных платформах, например, ты не создашь симлинк на вендах, потому надо скопировать/перенести существующий.
Что значит «зачем»? «Зачем» спрашивают когда копируют ссылку, поскольку когда нужно копировать ссылку - редкий частный случай, когда это действительно и явно нужно (копирование иерархии файлов с локальными симлинками, например). А в общем случае тебе нужны данные файла и тебя никак не должно волновать как к ним указан путь.
К слову, копирование ссылки через такой глупый интерфейс как cp() - абсолютно бессмысленное занятие. Симлинк, на минуту, может быть относительным и абсолютным, а также в пути вообще может быть несколько симлинков. И что с этим делать определяется только логикой программы, о которой cp() ничего не знает.
Нет, мне нужен конкретный файл, чем бы он не являлся — симлинком, текстовым, бинарным файлом или ещё чем. И нужен он как есть, то есть даже если это симлинк с относительным путём, он мне нужен с тем же относительным путём.
копирование ссылки через такой глупый интерфейс как cp() - абсолютно бессмысленное занятие
Есть варианты лучше?
И что с этим делать определяется только логикой программы, о которой cp() ничего не знает.
А я не говорил, что cp() передаются данные бездумно.
Нет, мне нужен конкретный файл, чем бы он не являлся — симлинком, текстовым, бинарным файлом или ещё чем. И нужен он как есть, то есть даже если это симлинк с относительным путём, он мне нужен с тем же относительным путём.
Нужные тебе функции были перечислены.
А я не говорил, что cp() передаются данные бездумно.
Хоть думно, хоть бездумно, она не знает и не может знать что тебе нужно как-то специально обрабатывать симлинки, и не будет этого делать, потому что не для этого предназначена.