- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
sub serialize {
my ($obj) = @_;
my $result;
my $ref = ref $obj;
if ($ref eq 'HASH') {
$result = sprintf '{ %s }', join(', ', map { qq/"$_": / . serialize($obj->{$_}) } keys %$obj);
} elsif ($obj eq 'ARRAY') {
$result = sprintf '[ %s ]', join(', ', map { serialize($_) } @$obj);
} elsif (! $ref) {
if (!defined $obj) {
$result = 'null';
} elsif ($obj =~ /^ -? (?:0|[1-9]\d*) (?:\.\d+)? (?:[eE][+-]?\d+)? $/x) {
$result = $obj;
} else {
$obj =~ s/(["\\])/\\$1/g;
$obj =~ s/\r/\\r/g;
$obj =~ s/\n/\\n/g;
$obj =~ s/\t/\\t/g;
$result = qq/"$obj"/;
}
}
return $result;
}
Elvenfighter 14.11.2014 20:08 # +15
... или как там
Анонимус 14.11.2014 22:40 # +15
http://search.cpan.org/~makamaka/JSON-2.90/lib/JSON.pm
Elvenfighter 15.11.2014 03:30 # +15
guest 15.11.2014 04:28 # +16
Dummy00001 15.11.2014 14:23 # +16
и перловщики (как и многие другие разработчики языков программирования) тоже пидарасы, потому что считают что из коробки библиотеки должны читатся только из стандартных каталогов, и ни откуда иначе.
я ходил по тем же граблям, когда мне профи сказали что, что бы мне как обычному пользователю можно было поставить без рута модуля с CPAN'а, все что мне нужно это поставить как рут один модуль с CPAN'а.
можно конечно ручками менять `@INC` (пути к либам), но это все обложено другой пачкой граблей, потому что `use` (подключение либы) обламывается уже на стадии компиляции, до того как код получил шанс на файловой системе найти либы.
bormand 15.11.2014 17:29 # +15
Dummy00001 15.11.2014 20:39 # +15
единственный работающий вариант это патчить скрипты при "инсталяции". что означает что нужно еще инсталяцию прикрутить - вместо простого "распакуй в каталог и пользуйся".
bormand 15.11.2014 21:01 # +15
Dummy00001 15.11.2014 21:08 # +14
и в конце концов, это же перл. на перле перл перлить и переперливать, это даже за экзотику не считается. а вы тут со своим шеллом. :)
SemaReal 23.02.2018 17:04 # 0
Если вы не можете поставить либу и пишите ее сами, то это лютейший пиздец
raMagPuJI 04.10.2019 02:07 # 0
wvxvw 15.11.2014 18:56 # +14
guest 15.11.2014 19:01 # +14
Dummy00001 15.11.2014 20:47 # +13
когда мне это было нужно, там как раз и была проблема что $HOME переопределялся на рабочий каталог софтины бегущей на серваке - и в этот каталог текущий пользователь писать не мог.
Elvenfighter 17.11.2014 03:16 # +13
guest 15.11.2014 19:01 # +13
1024-- 15.11.2014 20:12 # +12
bormand 15.11.2014 20:19 # +12
А проект вместо изучения новых технологий и фана превратится в боль в жопе, копание в засохшем говне типа пыхи 5.2 и борьбу с анальными ограничениями хостинга... Ничем хорошим это не кончается.
1024-- 15.11.2014 21:04 # +12
Изучать можно и у себя на локальной машине. А для тех вещей, где надо, чтобы работало, можно один раз написать на старом анальном и забыть.
Но если это творческий проект, дело всей жизни, текущая река мыслей и бесконечное число правок, то да, можно не ограничиваться.
bormand 15.11.2014 22:31 # +12
- Опыт? Да нахуй мне этот опыт работы с пыхой сдался, и без того хватает...
- Фан? Да какой там фан...
- Авторитет? Подумаешь, написал простейшего паука на пыхе и апи к нему. Это может любой.
- Деньги? Само собой нет.
- Пользу? Да не особо. Сток редко переполняется, можно просто перетерпеть.
Отсюда вывод: закопать мысль о бесконечном стоке подальше, и заняться чем-то другим, что хоть по какому-то из этих 5 параметров будет в плюсе.
Именно так это бы и закончилось, если бы я ориентировался на бесплатный хостинг.
Анонимус 15.11.2014 22:50 # +12
Сейчас не начало нулевых, хвала Аллаху, когда у меня был выбор: шаред хостинг за 15 долларов или ставить свой комп на колокейшен за 200. И конечно я выбирал шаред хостинг, и конечно тупые админы имели там устаревшую версию пхп без нужных мне модулей, неправильную базу, и mail у них не работал, и иногда проще было на перле cgi написать, потому что перл у админов обычно был лучше настроен.
Сейчас я могу взять VPS на амазоне где я буду рутом и сам поставлю там хоть брейнфак. Так что цена хостинга не может являться оправданием для неиспользования готовых хороших либ.
1024-- 15.11.2014 22:58 # +12
Да, я смотрю, тут богатеи собрались, для которых проще постоянно платить, чем один раз чуть подпилить под себя код.
Какая-то ложная оптимизация усилий выходит. То программисты скрипт для единственной задачи пишут дольше, чем выполняется задача, то один раз пишут на любимом языке, чтобы потом лет пять платить.
bormand 15.11.2014 23:12 # +12
> один раз подпилить код
А потом еще раз другой код. А потом еще. И еще. И вот ты уже профессиональный пехепешник, который ютится на бесплатных говнохостингах и кроме них больше ничего не изучил...
bormand 15.11.2014 23:19 # +12
1024-- 15.11.2014 23:42 # +11
> в конце-концов <...> не только <...> но и <...>
А может я - жадный школьник. По мне - так лучше покупать то, что считаешь нужным купить. И в этом случае, скажем, 50 рублей за пачку сигарет мне как некурящему представляется в образе сундука с пиратским золотом, а 3000 рублей за жёсткий диск - всего ничего.
Вот у Вас ещё и дополнительные полезные возможности имеются, ради которых можно и заплатить.
> А потом еще раз другой код. А потом еще. И еще
Ну тут баланс нужен. Скажем, в бесконечный сток надо один раз добавить разбиение на странице, пару раз исправить какие-то глупые баги, а потом оставить его до тех пор, пока либо ГК, либо браузеры не изменятся. Проект по сути пассивный, это не Википедия и не поисковик, тут идея и алгоритмы уже достигли идеала.
Если надо писать постоянно, это уже немного другая ситуация, там другие приоритеты.
bormand 16.11.2014 00:19 # +12
P.S. Кстати, а бесплатные пыхохостинги дают крон и исходящие коннекты?
inkanus-gray 16.11.2014 00:49 # +13
Другие популярные не дают.
roman-kashitsyn 16.11.2014 11:47 # +12
bormand 16.11.2014 12:14 # +12
Хероку, когда я с ним игрался, только рельсы умел. ДвигательПриложений не пробовал, тут ничего не скажу.
raMagPuJI 04.10.2019 02:07 # 0
bormand 15.11.2014 22:50 # +12
Опыт: познакомился с такими няшками как flask, sqlalchemy, wsgi, lxml; слегка подкачал знания nginx, postgres, html5, angular.js и python.
Фан: это было весело и интересно.
Авторитет: по крайней мере не стыдно показать друзьям.
Деньги: -5$/месяц.
Польза: изредка юзаю сервис, когда основной сток переполнен; годная VPS в придачу.
bormand 15.11.2014 23:05 # +12
1024-- 15.11.2014 23:08 # +12
guest 15.11.2014 20:40 # +12
1024-- 15.11.2014 21:07 # +12
Elvenfighter 17.11.2014 03:22 # +12
Elvenfighter 17.11.2014 03:18 # +12
для этого BEGIN блок придумали:
Dummy00001 17.11.2014 03:23 # +12
я это делал пару раз. в дереве версий 2/3 изменений страданиями в этом BEGIN {} блоке и занимались. потому что всегда что-то надо было допиливать в логике нахождения где же эти грёбаные либы лежат.
на практике проще скрипты патчить. ищешь строки с `use lib` (потому что `push @INC` это не кошерно), ищешь либы, патчишь пути к либам в `use lib`ах.
Elvenfighter 17.11.2014 03:25 # +12
Этот скрипт ни разу не для веба (JSON, калазось бы). Просто запихивает нужные данные файл в нужном формате. Чтоб человек потом мог обратиться с этим файлом в /dev/null автоматизированную поддержку.
Так что каждый раз напрягать юзера "а установи-ка JSON.pm" не вариант.
bormand 17.11.2014 06:42 # +12
guest 18.11.2014 04:21 # +12
guest 18.11.2014 04:24 # +12