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

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ($sec,$min,$hour,$mday,$mon,$year) = localtime(time);
    if ($sec < 10) {$sec = "0$sec";}
    if ($min < 10) {$min = "0$min";}
    if ($hour < 10) {$hour = "0$hour";}
    if ($mday < 10) {$mday = "0$mday";}
    if ($mon < 10) {$mon = "0$mon";}
    $mon++;
    $year = 1900 + $year;
    print "[$mday-$mon-$year $hour:$min:$sec]\n";

    Добиваем нулями

    Запостил: rohard, 24 Февраля 2011

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

    • Ну если так даже в своих книжках российские авторы пишут, так что нечему удивляться.
      Ответить
      • Приводите ссылки на книжки, будем веселиться.
        Ответить
    • увеличение месяца по-моему поздно сделали, форматирование собьется ))
      Ответить
      • нет, это в порядке.

        $mon после "0$mon" есть строка, а перл строки строчно инкрементит.
        Ответить
        • Это хуже, чем PHP.
          Ответить
        • Все равно мне кажется, что инккрементить строку неверно, надо сначала увелить значение месяца а потом уж делать форматирование
          Ответить
          • в перле нет такого понятия "верно/неверно" - это применимо только к содержимому головы программиста ;)
            Ответить
            • надо писать конструкции, в которых ты уверен. Потому что инкремент строки может еще означать неявное преобразование в число
              Ответить
              • не в перле. инкремент строки определен и продокументирован: http://perldoc.perl.org/perlop.html#Auto-increment-and-Auto-decrement
                Ответить
                • здорово. Но жаль, что это только в перле
                  Ответить
                • То есть для строк из 0-9 правило одно, из 0-а другое, для остальных - третье?!
                  Ёбаный пиздец.
                  Ответить
                • не понял... а где там написано, что инкремент "07" даст "08", а не "8" или еще что-то?
                  Ответить
            • В перле вообще всё верно и любая последовательность символов скомпилится.
              Ответить
              • >>В перле
                >>скомпилится
                не-а

                в оригинале фраза звучала так: "любая последовательность символов является валидной программой на языке перл"
                Ответить
                • > в оригинале
                  на русском или вы перевели?

                  > валидной
                  если перевели, то зачем использовать жаргонизмы?
                  Ответить
    • когда-то я тоже не знал о существовании POSIX::strftime ...
      Ответить
      • И о существовании printf и sprintf тоже?

        А если уж извращаться, то только с регулярками:
        $sec =~ s/^\d$/0$&/;
        и т.д.
        Ответить

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