LINUX.ORG.RU

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

anonymous
()

Да здравствует Perl :)

anonymous
()

Пусть живет & здравствует великий и могучий Perl!!!

sabonez ★☆☆☆
()

Perl конечно долбанутый язык, но всё равно рульный!

Поздравляю!

anonymous
()
Ответ на: комментарий от anonymous

>>Похоронить пора, и заменить, скажем, Питоном.
Похоронить надо п?здоболов aka онанимус.
Вот выйдет Perl6 - и жабу уделает.

sabonez ★☆☆☆
()
Ответ на: комментарий от sabonez

Ну это ты чувак ваще загнууул. Ты где работаешь? Небось напару с лохматым дезигнером сайты лепишь показывающие прайс-лист из mysql'я? =)

anonymous
()
Ответ на: комментарий от anonymous

amazon.com powered by Perl (Mason).

"Mason elegantly solves the problem of large-scale web development, giving Amazon.com web developers the power of industry-standard Perl and the simplicity of re-usable components. This has made it easy to manage and evolve a very large mission-critical global codebase, and has halved the ramp-up time for new developers."

Sun-ch
()
Ответ на: комментарий от Sun-ch

Хоть саныч и бздун, но здесь прав. Скажите, ради чего приличному perl программисту переходить на питон ?

anonymous
()
Ответ на: комментарий от anonymous

>>Ну это ты чувак ваще загнууул. Ты где работаешь? Небось напару с >>лохматым дезигнером сайты лепишь показывающие прайс-лист из mysql'я? Нет, я работаю админом. Мускулем я правда пользуюсь, но не для прайсов. Ще я юзаю MSSQL и Оракл. И если б не было перла, я б наверно офигел уже давно. На чем еще можно быстро накидать полезный утиль?

sabonez ★☆☆☆
()
Ответ на: комментарий от anonymous

2anonymous (*) (22.12.2003 14:26:11):

> Perl великая сила! многим языкам у него учиться и учиться....

Чему учиться? Уёбищному синтаксису?

anonymous
()
Ответ на: комментарий от anonymous

Во первых сам ты уебище, а во вторых, напиши мне плиз, убирание строк из массива с посторяющимися числами в любом другом языке так коротко и просто без дополнительного использования подключаемых библиотек:

@uniq = grep {!$_{$1} if m!\d\d!} @mass;

перл в плане синтаксиса - идеален

anonymous
()
Ответ на: комментарий от anonymous

Вот эту вот строчку объяснить как работает, сложнее, чем написать... что может быть лучше для синтаксиса языка?

anonymous
()
Ответ на: комментарий от anonymous

бля, снова не так: @uniq = grep {!$_{$1}++ if m!(\d\d)!} @mass;

:)))

anonymous
()
Ответ на: комментарий от anonymous

>> Perl великая сила! многим языкам у него учиться и учиться....

>Чему учиться? Уёбищному синтаксису?

Тебе, уебищному онанимусу, учиться бесполезно, раз твоего интеллекта не хватило даже на синтаксис, который и правда, посложнее чем у других языков. Посложнее он потому, что это единственный язык со встроенными __НА_УРОВНЕ_СИНТАКСИСА__ типами данных МАССИВ (именно массив, а не индексированный указатель), ХЭШ (аналогично) и РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ. Именно этот синтаксис, который некоторым оказывается не по уму, и позволяет писать очень компактно, быстро и ясно. Именно эта комфортность программирования и доставляет так много радости любителям перла. Но те, кто безнадежно споткнулся о синтаксис этого не поймут никогда. Мне искренне жаль таких ...

anonymous
()
Ответ на: комментарий от Sun-ch

кому надо это тормозное глюкало? еще один скриптовый язык всеголишь...

А этот кемел не нарисавался...

anonymous
()
Ответ на: комментарий от anonymous

> позволяет писать очень компактно, быстро и ясно

Соласен что компактно, что быстро. Но ясно - это ты загнул малость. Если писать ясно, будет не очень компактно.

Лично я педпочитаю ясность :)

anonymous
()

Поздравляю всех перлистов с сим знаменательным событием!

ЗЫ охренительный камель :)

ttyS0
()
Ответ на: комментарий от anonymous

> убирание строк из массива с посторяющимися числами в любом другом языке так коротко и просто без дополнительного использования подключаемых библиотек:

> @uniq = grep {!$_{$1} if m!\d\d!} @mass;

баш:

cat file_name | sort | uniq

:)

anonymous
()
Ответ на: комментарий от anonymous

2anonymous (*) (22.12.2003 15:59:13):

> Во первых сам ты уебище, а во вторых, напиши мне плиз, убирание
> строк из массива с посторяющимися числами в любом другом языке так
> коротко и просто без дополнительного использования подключаемых
> библиотек:
> @uniq = grep {!$_{$1} if m!\d\d!} @mass;

Ну ты и глупая собака. Это ты называешь нормальным языком?!!
geek, ёптыть твою. ;-)

Несколько тысяч строк такой хуятени, и у тебя мозги наберкень будут.
Так "коротко и просто". Ню-ню. Мало ты языков программирования видел.

anonymous
()
Ответ на: комментарий от anonymous

> Это не bash а unix utils.

Да знаю я, что это. Хотел сказать, что для решения этой "задачи" можно использовать не только perl.

У перла есть одно огромное преимущество - CPAN. Других не вижу.

anonymous
()
Ответ на: комментарий от ttyS0

насамом деле строка grep {!$_{$_}++} @mass убирает повторяющиеся строки из массива, а строка grep {!$_{$1}++ if m!(\d\d)!} @mass убирает строки с любым содержимым с повторяющимися двузначными числами

А пересечение двух массивов на других языках как?

Постановка задачи:

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

@a=(1,3,5,6,7,8);
@b=(2,3,5,7,9);

@union=@isect=@diff=();
%union = %isect =();
%count = ();

# для объединения и пересечения:

foreach $e(@a) {$union{$e}=1}
foreach $e(@b){
if ($union{$e}){$isect{$e}=1}
@union = keys %union;
@isect = keys %isect;
}

еще одно решение:

foreach $e(@a, @b) {$union{$e}++ && $isect{$e}++}

@union = keys %union;
@isect = keys %isect;

и еще одно для объеденения, пересечения и симметричной разности:

foreach $e(@a, @b) {$count{$e}++}

foreach $e(keys %count) {
push @union => $e;
if ($count{$e} == 2) {
push @isect => $e;
} else {
push @diff => $e;
}
}

еще одно решение

@union=@isect=@diff=();

foreach $e(@a, @b) {$count{$e}++}

foreach $e(keys %count) {
push @union => $e;
push @{$count{$e} == 2 ? \@isect : \@diff } => $e;
}

симметричная разность, это набор всех элементов, являющихся членами либо @A, либо @B, но не обоих сразу. Простая разность - набор всех элементов @A, отсутствующих в @B.

вот такие вот вещи умеет perl (конечно, их умеет и C/C++/Java/Pythoon/Ruby/Tcl/Tk/C#/Ada/Awk/Sed/, но вопрос, какой кровью :)

anonymous
()
Ответ на: комментарий от anonymous

корректировка: хотябы в одном из списков (объединение)

p.s. это был рецепт из одной книшки :)

anonymous
()
Ответ на: комментарий от anonymous

"Несколько тысяч строк такой хуятени" А если форкнуться грамотно и разбить программу на кусочки, то несколько тысяч строк хеятени превратятся в несколько сот строк... Хотя чтобы форк на перле грамотно сделать (пул форкающихся серверов с _правильным_ отловом зомби), надо перловый IPC по минимуму год прогать... ИМХО.

anonymous
()
Ответ на: комментарий от anonymous

вот такие вот вещи умеет perl (конечно, их умеет и
C/C++/Java/Pythoon/Ruby/Tcl/Tk/C#/Ada/Awk/Sed/,
но вопрос, какой кровью :)


Python 2.3:

Here's a simple example: 

>>> import sets
>>> S = sets.Set([1,2,3])
>>> S
Set([1, 2, 3])
>>> 1 in S
True
>>> 0 in S
False
>>> S.add(5)
>>> S.remove(3)
>>> S
Set([1, 2, 5])
>>>

The union and intersection of sets can be computed with the union()
and intersection() methods; an alternative notation uses the bitwise
operators & and |. Mutable sets also have in-place versions of these
methods, union_update() and intersection_update().
 

>>> S1 = sets.Set([1,2,3])
>>> S2 = sets.Set([4,5,6])
>>> S1.union(S2)
Set([1, 2, 3, 4, 5, 6])
>>> S1 | S2                  # Alternative notation
Set([1, 2, 3, 4, 5, 6])
>>> S1.intersection(S2)
Set([])
>>> S1 & S2                  # Alternative notation
Set([])
>>> S1.union_update(S2)
>>> S1
Set([1, 2, 3, 4, 5, 6])
>>>

It's also possible to take the symmetric difference of two sets. This
is the set of all elements in the union that aren't in the 
intersection. Another way of putting it is that the symmetric 
difference contains all elements that are in exactly one set. Again, 
there's an alternative notation (^), and an in-place version with the 
ungainly name symmetric_difference_update(). 


>>> S1 = sets.Set([1,2,3,4])
>>> S2 = sets.Set([3,4,5,6])
>>> S1.symmetric_difference(S2)
Set([1, 2, 5, 6])
>>> S1 ^ S2
Set([1, 2, 5, 6])
>>>

There are also issubset() and issuperset() methods for checking whether one set is a subset or superset of another: 

>>> S1 = sets.Set([1,2,3])
>>> S2 = sets.Set([2,3])
>>> S2.issubset(S1)
True
>>> S1.issubset(S2)
False
>>> S1.issuperset(S2)
True
>>>

Тупо выдрал из доки.
Где сдесь кровь?

anonymous
()
Ответ на: комментарий от anonymous

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

На SQL это пишется в одну строку,

токо я забыл как :)

Sun-ch
()
Ответ на: комментарий от HellAngel

или совсем без grep (только для спортивного интереса)

%h=(); $h{$_}++?next:push @a,$_ foreach @arr;

HellAngel ★★
()
Ответ на: комментарий от anonymous

>пул форкающихся серверов с _правильным_ отловом зомби

Я где-то видел книжку, где все это разжевано до соплей.

Sun-ch
()
Ответ на: комментарий от Sun-ch

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

И еще есть важный минус, который неперечеркивает разве что цпан - перл просто сосет по скорости с любым нескриптовым языком...

anonymous
()

Некоторые вещи, если бы не появились на свет, сделали бы мир лучше и чище ;)
Уж лучше бы этот "язык" на свет не появлялся совсем!

anonymous
()
Ответ на: комментарий от anonymous

>перл просто сосет по скорости с любым нескриптовым языком...

Для больших программ это неверно, причем надо учесть, что многие

модули написана на C.

Реализуй функционал IMAP::Client на С :)

Sun-ch
()
Ответ на: комментарий от anonymous

> А пересечение двух массивов на других языках как?
> foreach $e(@a) {$union{$e}=1}

Кхе-кхе ;)
В пхп это делается так:
array_intersect()
array_merge()

А как на счет array_diff() ? Работа с массивами в перл - полнейший отстой. Чего стоит несоблюдение последовательности обхода ключей
в массиве в цикле foreach. Костыли, костыли... Весь язык - один большой
костыль.

anonymous
()
Ответ на: комментарий от anonymous

некоторые ананимусы, если бы они не появились на свет, сделали бы мир лучше и чище ;)
уж лучше бы тебе не появляться на свет с таким именем!

HellAngel ★★
()
Ответ на: комментарий от anonymous

кто такой перл (питон/пхп/хтмл) программист? вот перл (питон/пхп/хтмл) кодер, это я понимаю. а программист, ему язык пофиг, какой надо тот и использует.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.