The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
как избежать замены переменной, !*! Cyrus_user, 19-Июл-07, 07:38  [смотреть все]
вот затупил:

sub rep{                                                                                                              
$_[0] =~ s/\_//g;                                                                                                      
return $_[0];                                                                                                          
}                                                                                                                      
$d1='2007_05_27';                                                                                                      
$d2='2007_06_27';                                                                                                  
print "$d1 - $d2\n";
print "FF $d1 - $d2\n", if rep($d1) <= rep($d2);

$ ./test01.pl
2007_05_27 - 2007_06_27
FF 20070527 - 20070627

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

  • как избежать замены переменной, !*! A, 08:18 , 19-Июл-07 (1)
    >вот затупил:
    >
    >sub rep{
    >$_[0] =~ s/\_//g;
    >return $_[0];
    >}
    >$d1='2007_05_27';
    >$d2='2007_06_27';
    >print "$d1 - $d2\n";
    >print "FF $d1 - $d2\n", if rep($d1) <= rep($d2);
    >
    >$ ./test01.pl
    >2007_05_27 - 2007_06_27
    >FF 20070527 - 20070627
    >
    >по идее, печать переменных будет если над ними выполнено условие, но почему
    >сами переменные тут изменяются?

    написано в любой книжке по Perl

    >я же делаю подпрограммой их подмену только
    >для условия.. как этого избежать?

    sub rep {
    my ($s)=@_;
    $s =~ s/\_//g;
    return $s;
    }

    PS: а лучше бросайте вы этот перл -- у этого языка нет будущего.

    • как избежать замены переменной, !*! Cyrus_user, 09:35 , 19-Июл-07 (2)
      >написано в любой книжке по Perl
      >
      >>я же делаю подпрограммой их подмену только
      >>для условия.. как этого избежать?
      >
      >sub rep {
      > my ($s)=@_;
      > $s =~ s/\_//g;
      > return $s;
      >}
      >

      спасибо

      >PS: а лучше бросайте вы этот перл -- у этого языка нет
      >будущего.

      для моих задачек мне его хватает.. а в какую сторону начинать строиться? :)

      • как избежать замены переменной, !*! A, 10:26 , 19-Июл-07 (3)
        >для моих задачек мне его хватает.. а в какую сторону начинать строиться?
        >:)

        Какой необычный вопрос :-) Респект! (я думал ругаться будете :-) простите, плохо подумал :-))

        Если у вас простые задачи (типа этой), то рекомендую awk. Полное его изучение займёт у вас один день за-то вы получите всё необходимое, чтобы решать такие задачи (найти, заменить, вывести если...). Я работаю над проектами масштаба 100000 строк. От Perl в конце концов отказываюсь.

        Резонов несколько, но лидеры:
        1) анархичность кода и не достататочная поддержка ОО
        2) после изучения и плотной работы с XS я в ужОсе от того, как перл устроен внутри, не удивительно, что его решили полностью переработать (perl6 -- фактически новый язык) и не удивительно, что эта переработка буксует уже почти десять лет.

        Я заруливаю в сторону Python. Резонов опять же несколько:
        1) нормальные объекты
        2) код на порядок лучше читается и поддерживается
        3) производительность выше (часто на порядок!)
        4) активно развивается (через лет пять, я думаю, питон сильно потеснит перл, уже сейчас питонщики предлагают очень вкусные решения, а сам язык портирован даже на сотовые; думаю, что "скоро" знатоков питона будет очень много; тут правда, надо понимать, что для меня "скоро" это несколько лет, разрабатывая такие большие продукты приходится закладываться на всё самое перспективное, чтобы когда продукт созреет он был современым, а не устаревшим)

        Правда есть Ruby, очень молодой, серьёзный конкурент Python. Правда многие библиотеки Ruby портированы на питон, а разработчки сотрудничают. Perl стоит в стороне от этого всего и топчится на месте.

        Вот такие пироги :-)

        • как избежать замены переменной, !*! Cyrus_user, 15:04 , 19-Июл-07 (4)
          >>для моих задачек мне его хватает.. а в какую сторону начинать строиться?
          >>:)
          >
          >Какой необычный вопрос :-) Респект! (я думал ругаться будете :-) простите, плохо
          >подумал :-))
          >
          >Если у вас простые задачи (типа этой), то рекомендую awk. Полное его
          >изучение займёт у вас один день за-то вы получите всё необходимое,
          >чтобы решать такие задачи (найти, заменить, вывести если...). Я работаю над
          >проектами масштаба 100000 строк. От Perl в конце концов отказываюсь.
          >
          >Резонов несколько, но лидеры:
          >1) анархичность кода и не достататочная поддержка ОО
          >2) после изучения и плотной работы с XS я в ужОсе от
          >того, как перл устроен внутри, не удивительно, что его решили полностью
          >переработать (perl6 -- фактически новый язык) и не удивительно, что эта
          >переработка буксует уже почти десять лет.
          >
          >Я заруливаю в сторону Python. Резонов опять же несколько:
          >1) нормальные объекты
          >2) код на порядок лучше читается и поддерживается
          >3) производительность выше (часто на порядок!)
          >4) активно развивается (через лет пять, я думаю, питон сильно потеснит перл,
          >уже сейчас питонщики предлагают очень вкусные решения, а сам язык портирован
          >даже на сотовые; думаю, что "скоро" знатоков питона будет очень много;
          >тут правда, надо понимать, что для меня "скоро" это несколько лет,
          >разрабатывая такие большие продукты приходится закладываться на всё самое перспективное, чтобы
          >когда продукт созреет он был современым, а не устаревшим)
          >
          >Правда есть Ruby, очень молодой, серьёзный конкурент Python. Правда многие библиотеки Ruby
          >портированы на питон, а разработчки сотрудничают. Perl стоит в стороне от
          >этого всего и топчится на месте.
          >
          >Вот такие пироги :-)

          спасибо за развёрнутый ответ. до ОО мои задачи не дотягивают. awk почему-то бесит. смотреть в сторону python давно себя заставляю, но пока ленюсь. Видимо пора, слишком часто о нём лестно отзываются в сравнении с perl, ну и пока я не залезу в тонкости программирования, видимо не пойму в чём конфета.

        • как избежать замены переменной, !*! andy, 06:11 , 20-Июл-07 (5)
          >1) анархичность кода

          это чего такое? Может она в голове у вас, эта анархичность? По мне все стройно и просто..

          > и не достататочная поддержка ОО

          чего не хватает? (интересно просто)
          В perl cookbook позабавило высказывание (по памяти, неточно): "ОО в перле не плохое, оно просто другое".

          >2) после изучения и плотной работы с XS я в ужОсе от
          >того, как перл устроен внутри,

          опять же, хотелось бы более развернуто, в чем конкретно ужас, может тоже бояться буду

          >не удивительно, что его решили полностью
          >переработать (perl6 -- фактически новый язык) и не удивительно, что эта
          >переработка буксует уже почти десять лет.

          буксует, ага. А пятая ветка развивается. Меня такое положение вещей устраивает

          ----------------

          4Cyrus-user: Не слушайте вы этого товарища (да и меня заодно), пользуйте то, что подходит _под задачу_, а не то, что модно/круто по мнению некоего X

          • как избежать замены переменной, !*! A, 09:39 , 20-Июл-07 (6)
            неблагодарное это дело, спорить с человеком, которого всё устраивает :-)
            Короткий ответ: устраивает -- пользуйтесь. (без шуток и тени издёвки)
            Меня тоже лет десять устраивало и я вас понимаю.

            Более полный ответ можете лучше почитать тут
            http://michurin.com.ru/python-vs-perl.shtml

            >>1) анархичность кода
            >
            >это чего такое? Может она в голове у вас, эта анархичность? По
            >мне все стройно и просто..

            грубо. и довольно глупо, так как вы не знаете ни масштаба моих
            задачь, ни коллектива в котором я работаю (голова-то не одна).

            в целом же, анархичность это отсутствие законов. в Perl силшком
            много обходных путей и многие ими пользуются. код становится нечитаем.

            >> и не достататочная поддержка ОО
            >
            >чего не хватает? (интересно просто)
            >В perl cookbook позабавило высказывание (по памяти, неточно): "ОО в перле не
            >плохое, оно просто другое".

            не xватает ничего :-) ни компактного синтаксиса, ни нормальных конструкторов...
            кроме того, когда количество классов начинает приближаться к 1000, начинает
            бесить то, что все они распиханы по разным файлам, а пара десятков запиханы
            в другие файлы (под две package в одном файле) и найти их невозможно.

            >>2) после изучения и плотной работы с XS я в ужОсе от
            >>того, как перл устроен внутри,
            >
            >опять же, хотелось бы более развернуто, в чем конкретно ужас, может тоже
            >бояться буду

            читайте документацию (которая, кстати, местами просто недописана и брошена
            на полуслове, типичный Perl-way), почитайте, как работает сборщик мусора в
            перл и сколько к нему приделано костылей типа мортализации.

            кстати то, что в перл назвается "сборщиком мусора", в питон назвается
            "механизм подсчёта ссылок", а сборщик мусора в питон это то, чего в
            принципе нет в перле. читайте документацию.

            >>не удивительно, что его решили полностью
            >>переработать (perl6 -- фактически новый язык) и не удивительно, что эта
            >>переработка буксует уже почти десять лет.
            >
            >буксует, ага. А пятая ветка развивается. Меня такое положение вещей устраивает

            Только развивают не googlе и не IBM, её не портируют на симбиан...
            Посмотрите на мир с высоты причьего полёта, перл уже сейчас никому не интересен.
            Корпорации от него уже отвернулись и сейчас начинают отворачиваться и крупные
            компании (пока больше западные, я работаю в американской компании, до россии это
            доползёт как всегда с запаздыванием лет на 20, когда книжки переведут на русский).

            >----------------
            >
            >4Cyrus-user: Не слушайте вы этого товарища (да и меня заодно), пользуйте то,
            >что подходит _под задачу_, а не то, что модно/круто по мнению
            >некоего X

            Это точно, но и вперёд заглянуть не повредит :-) Просто для общего развития.

            • как избежать замены переменной, !*! andy, 12:09 , 20-Июл-07 (7)
              >Короткий ответ: устраивает -- пользуйтесь. (без шуток и тени издёвки)

              ну так и я про это

              >Меня тоже лет десять устраивало и я вас понимаю.

              у меня поменьше, с 5.003 начинал :)

              >
              >грубо. и довольно глупо, так как вы не знаете ни масштаба моих
              >задачь, ни коллектива в котором я работаю (голова-то не одна).
              >в целом же, анархичность это отсутствие законов. в Perl силшком
              >много обходных путей и многие ими пользуются. код становится нечитаем.

              ну у меня тоже масштабы нормальные, но в целом понял.
              Это не проблема именно перла, а проблема определения правил игры в команде. У вас вот, простите, довольно много орфографических ошибок в тексте, так что теперь, опеннет плохой?
              Хотя перл со своим "полиморфным" синтаксисом ставит эту проблему гораздо острее, согласен 100%

              >кроме того, когда количество классов начинает приближаться к 1000, начинает
              >бесить то, что все они распиханы по разным файлам, а пара десятков
              >запиханы в другие файлы (под две package в одном файле) и найти их невозможно.

              если количество классов приближается к 1000, надо за полгода до этого момента перевести проект с перла на язык, специально предназначенный для ОО. Ну и, опять же, на первый план выходит проблема определения правил игры в команде. Разве у вас не будет таких же проблем на яве, к примеру? Или что у вас, питон...

              >читайте документацию (которая, кстати, местами просто недописана и брошена
              >на полуслове, типичный Perl-way), почитайте, как работает сборщик мусора в
              >перл и сколько к нему приделано костылей типа мортализации.
              >кстати то, что в перл назвается "сборщиком мусора", в питон назвается
              >"механизм подсчёта ссылок", а сборщик мусора в питон это то, чего в
              >принципе нет в перле. читайте документацию.

              rtfm forever, этим и живу. Обсуждать сборщики мусора не буду, просто не успею. Однако стоит заметить, что документация к перлу отменная. Как по структуре, так и по качеству.

              >Только развивают не googlе и не IBM, её не портируют на симбиан...

              перл на симбиане, имхо, нужен точно так же, как и питон. Тормозно уж больно получается. У меня, по крайней мере :) Опять же, встает вопрос, зачем он там нужен?

              >Посмотрите на мир с высоты причьего полёта, перл уже сейчас никому не
              >интересен. Корпорации от него уже отвернулись и сейчас начинают отворачиваться и крупные
              >компании (пока больше западные, я работаю в американской компании, до россии это
              >доползёт как всегда с запаздыванием лет на 20, когда книжки переведут на
              >русский).

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


              >Это точно, но и вперёд заглянуть не повредит :-) Просто для общего развития.

              спасибо за заботу о моем развитии, но через час оно остановится ровно на две недели. Ибо отпуск.

              • как избежать замены переменной, !*! A, 15:15 , 20-Июл-07 (8)
                >Это не проблема именно перла, а проблема определения правил игры в команде.

                Проблема даже шире. Дело в том, что когда проект развивается десятилетиями,
                меняются и требования и железо и версии, а разработчики неминумо меняются
                практически все. Сейчас уже нет никого, что был бы здесь с самого начала
                и только двое, кто уже давно и хорошо всё представлет. Эта проблема
                неизбежна.

                И головы у всех очень хорошие, но, к сожалению, разные :-)
                А перл прям-таки поощряет, чтобы у каждого был свой стиль.
                В результате жутковатый код получается. По нему у нас целая wiki
                есть внутренняя :-) помогает здорово, но не достаточно.

                >У вас вот, простите, довольно много орфографических ошибок в тексте, так
                >что теперь, опеннет плохой?

                Извиняюсь :-) С русским у меня хуже чем с перлом :-) Хорошо, что хоть понимаете :-)

                >если количество классов приближается к 1000, надо за полгода до этого момента
                >перевести проект с перла на язык, специально предназначенный для ОО.

                Вот и я о том же. И в google и в IBM так же думают :-)

                >Однако стоит заметить, что документация к перлу отменная. Как по
                >структуре, так и по качеству.

                По базовому языку -- да.
                Но вы, похоже, не пробовали писать расширения на C и не
                сталкивались с mod_perl2. Здесь ваша уверенность в превосходности
                перловой документации сильно бы пошатнулась.

                >перл на симбиане, имхо, нужен точно так же, как и питон. Тормозно
                >уж больно получается. У меня, по крайней мере :) Опять же,
                >встает вопрос, зачем он там нужен?

                За тем же, зачем и Java :-)
                http://opensource.nokia.com/projects/pythonfors60/

                >>Посмотрите на мир
                >нормальный процесс развития.

                не спорю

                >>Это точно, но и вперёд заглянуть не повредит :-) Просто для общего развития.
                >спасибо за заботу о моем развитии, но через час оно остановится ровно
                >на две недели. Ибо отпуск.

                :-) да я не о вашем развитии беспокоюсь :-)
                просто человек спросил мнение, я ему сказал мнение




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру