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

    −123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    @rem = '--*-Perl-*--
    @echo off
    if "%OS%" == "Windows_NT" goto WinNT
    perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
    goto endofperl
    :WinNT
    perl -x -S %0 %*
    if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
    if %errorlevel% == 9009 echo You do not have Perl in your PATH.
    if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
    goto endofperl
    @rem ';
    #!perl
    #line 15
        eval 'exec C:\TEMP\perl---please-run-the-install-script---\bin\perl.exe -S $0 ${1+"$@"}'
    	if $running_under_some_shell;
    #!/usr/bin/perl
    # $Id: cpan,v 1.9 2006/11/01 21:49:31 comdog Exp $
    use strict;

    Запостил: seonull, 03 Ноября 2010

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

    • какой же это перл, если это windows batch? пусть он и запускает перл-скрипт.
      Ответить
      • меня до сих пор героизм и упорство виндозников поражает - через столько граблей пройти что бы перл на виндах запустить. даже fork() съэмулировали.

        когда на перле только начинал, батники знал лучше и долго за магию считал эти первые строчки. после пары лет на линухе, когда это опять увидел, даже и не понял сначала что это батник: перловый массив - с емаксовым идентификатором для типа файла.
        Ответить
        • да, я бы тоже хотел что бы винда перестала выпендриваца и взяла бы хотя бы позиксовую консоль.
          но нет.
          они сделали пауершелл, лишь бы не как у всех
          Ответить
          • позикс консоль бессмысленна - без тех тонн Линуховых тулзов. что и есть большая часть проблемы. PuTTY прикручиватся к cmd.exe разными хаками уже давно - а толку.

            меня бы вполне устроило если бы Винды подобно Макам Перл и/или Питоном в поставку включили. GUI тулкит на Маках есть только для Питона но и это уже весьма полезно. А если бы они какой Strawberry в Винды вкинули включая те Win32 опции которых CPAN уже за годы скопилась куча, или Питон + wxWidgets, то оно было бы не хуже чем на Маке. А так они в этот ёпнутый VB уперлись, там все и застряло безпросветно.
            Ответить
            • погодите!
              1) тулзы не линуксовые а гнушные
              2) аналогичные тулзы есть во всех никсах, потму что часть позикс (не gawk а awk например)
              3) именно это я и назвал "позиксовой консолью": sh плюс тулзы (sed, awk, grep итд)
              Ответить
              • > 1) тулзы не линуксовые а гнушные

                да. но единственная система которая их использует по умолчанию это линух. поэтому я и округляю. хотя строго говоря, да, это все гну.

                > 2) аналогичные тулзы есть во всех никсах, потму что часть позикс (не gawk а awk например)

                гыгы.
                сравни сам, например:
                http://www.opengroup.org/onlinepubs/9699919799/utilities/awk.html
                vs.
                http://linux.die.net/man/1/awk

                или

                http://www.opengroup.org/onlinepubs/9699919799/utilities/find.html
                vs.
                http://linux.die.net/man/1/find

                > 3) именно это я и назвал "позиксовой консолью": sh плюс тулзы (sed, awk, grep итд)

                ты никогда не поймешь что ты просишь - пока на позикс консоли не поработашь. то что ты хочешь это Линуксова консоль.

                я работаю каждый день на Солярке/HP-UX/AIX - которые в большинстве своем дают тебе почти чистую POSIX консоль. там опций шаром покати. на многие мелочи ответ либо метровые пайплайны или скрипты и т.д. в том же духе.

                как бы тривиальные факт: только Линукс (и последние БСД) поддерживают нормально файлы с пробелами в именах.

                можешь еще глянуть в sh vs. bash - классический боурн шелл он крут, но по сравнению с башем весьма вяло. и POSIX не оговаривает даже такой тривиальной вещи как редактирование коммандой строки - классический sh ее и не поддерживает. Прикинь как легко с этим работать - когда только Backspace и работает (cooked mode) - ни тебе Del, ни Home, ни стрелки влево/вправо.
                Ответить
                • я работал с бздями (опен и фрей) -- там нет гну.
                  и почти не тасковал под линуксу. все равно это в тыщу раз лучше чем кмд
                  Ответить
                  • а кмд - в тыщу раз лучше чем отсутствие компьютера :)

                    я избегаю таких сравнений.
                    Ответить
                    • я всего лишь имел ввиду что в никсах можно что угодно сделать шелл скриптом.
                      без ебли с WMI, COM, ADSI и прочими инструментами, доступными виндовым скриптовикам
                      Ответить
                      • не ссорьтесь, горячие...
                        сходите в лавочку дядюшки Билла и купите Interix :D
                        Ответить
                        • гг, я пробовал)) это не очень приятное решение.
                          тем более не ставить же это все на всех серверах.

                          зы: кстати в винде есть подсистема позикс (а не только win32), но она убога, как моя жизнь. Ее туда добавили только что бы сертифицироваться у американских оборонщиков
                          Ответить
                          • ага, как раз за счет POSIX subsystem этот Interix и функционирует :)

                            до недавнего времени была даже OS/2 subsystem :)
                            Ответить
                            • вроде и ща есть, нету?

                              Правда по умолчанию включается только win32 (csrss или как там он)
                              остальные подсистемы (v86, posix, os/2) включаются при первом запуске, да и то, если они разрешены в реестре, в ключике subsystem.
                              некоторые рекомендуют их отключать на серверах от грехов по дальше.

                              но так как без win32 навинде все равно ничего толком не сделаешь, а PE (ехешник) может работать только с одной подсистемой (она где-то в заголовке указываеца), то все выбирают win32 и на остальные забивают.
                              Ответить
                              • не помню, анонс выпиливания читал, но когда это было и о какой версии речь шла уже не помню
                                да, низким риском считается для продакшена (как собст-но любые неиспользуемые и неоцененные фичи оставленные включенными)
                                Ответить
                                • вообще в любой инсталляции винды 80% фич -- неиспользуемые.
                                  Издержки универсальности.
                                  Ответить
      • виндового в батничке только 9 строка, добро пожаловать в темные с серым шрифтом времена DOS

        Где здесь Perl, seonull?
        Ответить
        • 9 строка? помилуйте, errorlevel существовал еще в незапамятные времена. я бы назвал 3 и 8 строчки
          Ответить
          • if errorlevel 42 if "%errorlevel%"=="42" echo венде досу капец
            Ответить
    • windows такой виндоус)
      сеонулл на пару с товарищем выискивают перловые говны) но ничего, каникулы уже скоро кончатся, осталось немного потерпеть
      Ответить
    • > goto endofperl
      Проще было бы exit /b прописать, чем это...
      Ответить
    • Ше-банг.
      Ответить

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