afiskon 25.02.2010 20:46

СкриптыОсновы программирования на Perl (часть 2)

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


Тэги: perl script Study
+ 9 -
Похожие Поделиться

digiwhite 25.02.2010 20:49 #
Почему-то не люблю посты-ссылки :).
exelens 25.02.2010 21:20 #
Я признаться тоже =))) Только ТСС.. а то скажут, что ханжа.
booley 25.02.2010 22:03 #
"Оформляй как пост-ссылку!"
exelens 25.02.2010 22:13 #
Ну если мне не нравится это ведь не значит что не нравится всем.
booley 25.02.2010 22:04 #
Я не люблю их в нынешней инкарнации. Astramak обещал поправить =)
afiskon 25.02.2010 22:15 #
Честно говоря, я тоже. Но в прошлом анонсе мне сказали выбирать - либо ссылка, либо копипаст. А из двух зол, как говорится... :)
exelens 25.02.2010 22:16 #
Копипаст со ссылкой на источник гораздо рульней даже с позиции seo. Ведь есть ссылка на оригинал =)
afiskon 25.02.2010 22:24 #
На счет SEO не скажу, а здравый смысл подсказывает, что плодить копии одного и того же текста не есть гуд.
f_evgeny 26.02.2010 11:29 #
Мне кажется, в этой статье неплохо бы в самом начале упомянуть, что в Perl правда, а что ложь. (В смысле True/False)
booley 26.02.2010 11:30 #
Все лгут! Даже Perl! :D
0 - ложь, ЕМНИП?
f_evgeny 26.02.2010 12:13 #
0, "", undef - ложь, но 0.0 - правда
Остальное правда
Прим: Не на ту кнопочку нажал
afiskon 26.02.2010 12:32 #
print "1111" if("0"); # ничего не выведет
f_evgeny 26.02.2010 12:13 #
0, "", undef - ложь, но 0.0 - правда
afiskon 26.02.2010 12:57 #
Но больше всего я лублю в Perl возможность выполнять команды типа

perl -e 'for(<./*>) {print `md5 $_\n`;}'
afiskon 26.02.2010 12:59 #
Разумеется, в баше тоже есть глобы. Просто в perl операции с файлами могут быть сложнее. И да, я догадываюсь, что питон тоже так может :)
razum2um 28.02.2010 14:27 #
питон тоже так может :)

угу.
вот оно (однострочник, считает md5 всех файлов current dir рекурсивно и выдает список словарей {имя_файла : md5}):

python3 -c 'from functools import reduce; import os,hashlib; print(list(map (lambda x: {x : hashlib.md5(open(x, "rb").read()).hexdigest()}, ,)*len(l<2>),l<2>) for l in os.walk(os.getcwd())>))))>)))'

хотя это из спортивного интереса к функциональному подходу написана...
пока писал уже начал забывать как оно работает :)
digiwhite 28.02.2010 16:11 #
Помоему на bash`е это будет понятнее %)
razum2um 28.02.2010 16:41 #
да просто

md5sum `find . -type f`
мало того: оно с башем и сишными прогами быстрее
я просто показал, что на python тоже можно в одну строку
%)
madgnu 26.02.2010 16:36 #
for(1..4) {
print "$_";
}

можно еще проще:

for(1..4) {
print;
}
madgnu 26.02.2010 16:39 #
еще я очень люблю perl за работу с файлами:
my $file = open(LOGFILE, "< $logpath") or die("Log file cannot be opened!");
foreach (<LOGFILE>) {
print;
}
afiskon 26.02.2010 16:43 #
Тогда уж "print for 1..4;" или "print 1234;"
:)
madgnu 26.02.2010 16:44 #
print 1..4 :)