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

    −81

    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
    20. 20
    #!/usr/bin/perl
    use strict;
    <>;
    while (my $line = <>) {
        chomp($line);
        my ($name, $surname, @phones) = map {
            s/^7(\d{10})$/+7\1/;
            s/^8(\d{10})$/+7\1/;
            s/\"//g;
            $_;
        } split(";", $line);
        print "BEGIN:VCARD\n";
        print "VERSION:3.0\n";
        print "FN:$name $surname\n";
        print "N:$surname;$name;;;\n";
        for my $phone(@phones) {
            print "TEL;TYPE=CELL:$phone\n" if $phone;
        }
        print "END:VCARD\n";
    }

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

    Запостил: bormand, 20 Сентября 2012

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

    • > скрипт был написан после [...] мучений и безуспешных попыток

      ну это как бы было стандартным началом многих великих вещей.

      к сожалению это так и останется пятиминутным скриптом.

      а какой ламер наваял бы это на VB, и уже бы во всю на инете продавал другим ламерам за $25.

      ЗЫ никакого говна в скрипте особого нету. ну кроме конечно \1 на которое перл (с -w/use warnings(?)) должен был бы ругнутся что депрекэйтед и надо $1 использовать.
      Ответить
      • > ЗЫ никакого говна в скрипте особого нету
        А как же строки 7 и 8, которые можно было записать одной строкой s/^[78](\d{10})$/+7\1/;

        > \1 депрекэйтед
        Спасибо за информацию, если честно - не знал.

        > а какой ламер наваял бы это на VB, и уже бы во всю на инете продавал другим ламерам за $25.
        И энтерпрайз версию, которая позволяет выбирать колонки за $50.
        Ответить
        • > > ЗЫ никакого говна в скрипте особого нету
          > А как же строки 7 и 8, которые можно было записать одной строкой s/^[78](\d{10})$/+7\1/;

          для такого мелкого скрипта это не говно, это фича. это позволяет например избежать изменения номеров с 8кой простым кометриованием строчки.
          Ответить
    • я бы еще между шестой и седьмой строкой вставил удаление начальных и конечных пробельных символов
      Ответить

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