json таки можно валидировать регуляркой. Also, я узнал про ?(DEFINE) (?(DEFINE) (?<number> -? (?= [1-9]|0(?!\d) ) \d+ (\.\d+)? ([eE] [+-]? \d+)? ) (?<boolean> true | false | null ) (?<string> " ([^"\\\\]* | \\\\ ["\\\\bfnrt\/] | \\\\ u [0-9a-f]{4} )* " ) (?<array> \[ (?: (?&json) (?: , (?&json) )* )? \s* \] ) (?<pair> \s* (?&string) \s* : (?&json) ) (?<object> \{ (?: (?&pair) (?: , (?&pair) )* )? \s* \} ) (?<json> \s* (?: (?&number) | (?&boolean) | (?&string) | (?&array) | (?&object) ) \s* ) ) \A (?&json) \Z /six
try(push_me()) .and_then(just_touch(me)) .till(i_can_get(my_satisfaction));
ЖЖ принёс прекрасное: >#!/usr/bin/perl -w >use strict; > >print ";-)\n" if "foo" =~ //; >"bar" =~ /bar/; >print ":-(\n" if "foo" =~ //;
echo 'КПРФ' | iconv -t cp1251 | iconv -f koi8-r
ну вот, на запуск сислог-нг у меня ушла почти неделя О_о И это я ещё не закончил пилить свою rpm'ку: конфиг придётся править, состав модулей, может, поменять... Да и вообще, мало ли что-где. Но уже сейчас я в восторге от того, что конфиг сделан вообще 1 в 1 как в nginx'е: аккуратненько собраны определения "откуда", "куда" и коммутация этих направлений. Полный, щенячий восторг. На радостях подумал, что пора определиться с тем, чего же я хочу от него. А то оно столько всего умеет *__* also, узнал про тэг *code. Рекомендую. Половину сообщений с ним писать теперь буду. Спасибо @sergey-klay за уместное замечание к одному из предыдущих сообщений.
Это всё-таки круто, в одном месте поправить код, а в другом - забыть. Как называется процесс, когда смотрят код, ищут в нём вызовы функций и смотрят, что в эти вызовы передаётся? Review? void nv_registry_add_alias(NVRegistry *self, NVHandle handle, const gchar *alias) { g_static_mutex_lock(&nv_registry_lock); g_hash_table_insert(self->name_map, (gchar*)alias, GUINT_TO_POINTER((glong) handle)); g_static_mutex_unlock(&nv_registry_lock); } NVHandle nv_registry_alloc_handle(NVRegistry *self, const gchar *name) { /*skipped a bit*/ stored.name_len = len; stored.name = g_strdup(name); g_array_append_val(self->names, stored); g_hash_table_insert(self->name_map, stored.name, GUINT_TO_POINTER(self->names->len)); }