1. Perl / Говнокод #4572

    −103

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (-e '/etc/passwd') {
        # assume Unix
        ...
    }
    else {
        # assume NT
        ...
    }

    так в круто-мегабаксовом ClearCase IBM программисты определяют в Перле запущен ли скрипт под Виндой или под *NIXком. наши админы долго смеялись, но по приколу сохранили этот кусок как было в оригинале.

    Запостил: Dummy00001, 09 Ноября 2010

    Комментарии (36) RSS

    • Не ясно, почему по ветке else обязана быть NT...
      Ответить
      • скорее всего потому что только на НТ у ClearCase интерфейс коммандной строки слегка отличается что бы соотвествовать виндовым соглашениям (например '-' vs. '/' для опций; хаки для имен файлов с пробелами). на остальных поддерживаемых (*NIX-like) системах все одинаково.
        Ответить
        • показать все, что скрытоА под мак нет что ли перла?
          Ответить
          • на маке (десятке) есть /etc/passwd

            вот что будет с win9x или VMS -- не зна
            Ответить
          • а чем тебе мак не них?
            Ответить
            • А тем что на маке (вообще) есть еще перл 5.5, но тот мак - не 'nix :), хотя для изучения перла вполне пригоден
              Ответить
              • щито?
                Ответить
              • на маке классике был перл?

                десятка тоже не очень юникс: там микро (хихи) ядро mach, сверху posix окружение darwin, а сверху гуй кокоа (или карбон -- я их путаю)
                Ответить
                • был.

                  чем не юникс то? "Darwin, an open source UNIX foundation built on technologies such as FreeBSD, Mach, Apache, and GCC"

                  http://osxbook.com/book/bonus/ancient/whatismacosx//images/arch.jpg
                  Ответить
                  • мак это mach, поверх которого работает дарвин
                    ядро там не уникс
                    Ответить
                    • тут, кажется тред про *NIX-like, а не про расовый юникс, нет?
                      Ответить
                    • >десятка тоже не очень юникс: там микро (хихи) ядро mach

                      Ага. На VBS написанное.
                      Говорят, когда Торвальдс Линус ознакомился с микроядерной идеей, он назвал ее полным гавном - ну что это за ядро, которое не нужно перекомпилять, если понадобится воткнуть новый драйвер?
                      И макось - не юникс. Потому что чаще всего не из бинарников софт (серверный, а не адобу) надо ставить, а из исходников собирать. Нет, нихера не юникс!
                      Ответить
      • потому что после виндоус ленолиум все следующие оси от майкрософт - дочки NT.

        а прочее, на чем бегает эта софтика (AIX, Linux, HP-UX, Solaris) - это как-бы юникс. вопрос только в каноничности z/OS, но тут мне сказать нечего.
        Ответить
        • линолиум -- дочка 9x.
          Вы же не путаете линолиум и 2000, как путали их ребята из моего двора 10 лет назад?

          Linux тоже не юникс строго говоря, а его клон. Если на то пошло, но совсем кошерно называть юниксом только SCO.
          Ответить
          • >> [b]после[/b] виндоус ленолиум
            ленолиум - последний из магикан, но это к лучшему. печальное монолитное ядро такое печальное.

            >ребята из моего двора
            фейспалм.чо

            >> как-бы юникс
            является примерным переводом термина Unix-like.


            Не следует пренебрегать здоровым сном даже ради написания острого и интересного комментария.
            Ответить
      • прочитал:
        Не ясно, почему по ветке else обезьяна быть NT...
        Ответить
        • Обезьяна - это тот, кто данный код писал.
          Ответить
    • типа if(file_exists("C:/autoexec.bat")) для форточек
      Ответить
      • Надежнее так:
        if (-e 'C:\WINDOWS\system32\sol.exe') {
            # assume NT
            ...
        }
        else {
            # assume DOS
            ...
        }
        Ответить
        • то есть урезанную версию за венду не считаем? )
          Ответить
          • проверка не прошла - между стулом и клавиатурой никто не застрял
            Ответить
            • ликвидировали самое слабое звено -- непорядок с утренним стулом?
              Ответить
        • ну и просрали nt & win2k

          c:\winnt
          а вообще рассово верно смотреть перемену окруження
          Ответить
        • Я один раз обиделся на пасьянс и удалил его, а восстановлению системы запретил восстанавливать сей важный системный объект. Думается мне, мой виндовз бы такую проверку не прошёл.
          Ответить
      • у Вас в семерке есть autoexec.bat?)
        Ответить
        • Видимо, из-за ностальгии.
          Ответить
        • Прикола ради, щас у себя посмотрел (win7 64).... Есть!

          содержит одну строчку:
          "REM Dummy file for NTVDM"
          Ответить
        • У меня включена опция "показывать скрытые файл и папки", но файла autoexec.bat не видно.
          Только консольный dir его показывает.
          Я смотрел этот файл из под консоли так:
          more c:\autoexec.bat
          Ответить
        • у меня в openSuSe нет autoexec.bat
          Ответить
    • А это еще что!
      Мне про IBM-овских индусов рассказывали, как оне логический результат переводили в строку ( true || false ), а потом, в зависимсти от количества буков в слове, ветвили процедуру. Дело было, кажется, на java.
      Ответить

    Добавить комментарий