The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"как избежать замены переменной"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"как избежать замены переменной"  
Сообщение от Cyrus_user on 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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "как избежать замены переменной"  
Сообщение от A on 19-Июл-07, 08:18 
>вот затупил:
>
>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: а лучше бросайте вы этот перл -- у этого языка нет будущего.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

спасибо

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "как избежать замены переменной"  
Сообщение от andy email(??) on 20-Июл-07, 06:11 
>1) анархичность кода

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

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

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

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

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

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

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

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Более полный ответ можете лучше почитать тут
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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "как избежать замены переменной"  
Сообщение от A on 20-Июл-07, 15:15 
>Это не проблема именно перла, а проблема определения правил игры в команде.

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

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

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

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

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

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

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

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

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

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

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

не спорю

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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