Сегодня релизнулся. В perlbrew себе собрал, играюсь.
На ЛОР новость ожидаемо вызвала срач адептов, неосилянтов и простомимопроходящих ))
На ЛОР новость ожидаемо вызвала срач адептов, неосилянтов и простомимопроходящих ))
git remote update origin --prune1.2. Затем переключимся на ветку
git checkout --track origin/<имя ветки>или для старых версий Git
git checkout -b <имя ветки> origin/<имя ветки>или так
git checkout master
git pull
git checkout <имя ветки>
git rm -r --cached FILE3. Посмотреть файл командой blame до указанного коммита
git commit -m "delete file from index"
git push origin master
git blame commitID~1 filename4. Удалить ветку на сервере
git push -d origin [имя ветки]5. Посмотреть историю между коммитами
git log --oneline commitID1..commitID2
$VAR1 = bless( {
'DOMAINS' => {
'yandex.ru' => 1,
'INVALID' => 5,
'rambler.ru' => 1,
'vk.com' => 1,
'mail.ru' => 2
},
}, 'MyModule' );
необходимо выводить данные хеш-массива DOMAINS, отсортированные по значениям(values) данного массива.
foreach my $domain (sort { $self->{DOMAINS}->{$b} cmp $self->{DOMAINS}->{$a} }
keys $self->{DOMAINS}) {
print $domain . "\t" . $self->{DOMAINS}->{$domain} . "\n";
}
В результате получаем то, что требовалось:
INVALID 5
mail.ru 2
yandex.ru 1
rambler.ru 1
vk.com 1
import sublime, sublime_plugin
class RunBuildCommand(sublime_plugin.WindowCommand):
def run(self, build_system):
self.window.run_command( "set_build_system", {"file": build_system } )
self.window.run_command( "build" )
{ "cmd": ["/usr/bin/perl", "$file"], "file_regex": ".* at (.) line ([0-9])", "selector": "source.perl" }
{ "cmd": ["/usr/bin/perl", "-c", "$file"], "file_regex": ".* at (.) line ([0-9])", "selector": "source.perl" }
[ { "keys": ["alt+c"], "command": "run_build", "args": { "build_system": "Packages/User/Perl-check.sublime-build" } }, { "keys": ["alt+b"], "command": "run_build", "args": { "build_system": "Packages/User/Perl-build.sublime-build" } } ]После этого у вас на комбинациях alt-c и alt-b появляются проверка синтаксиса и выполнение скрипта соответственно.
ALTER DATABASE bugtracker SET bytea_output='escape'Данный запрос устанавливает формат вывода bytea таким же, какой был в версии 8.4. После проделанной процедуры всё успешно заработало.
/* программа, реверсирующая входные строки */ #include <stdio.h> #define MAXLINE 1000 void reverse(char s[]); int my_getline(char s[], int); int main() { int len; char line[MAXLINE]; while((len = my_getline(line, MAXLINE)) > 0) { printf("Исходная строка выглядит так: %s", line); reverse(line); printf("Реверсированная строка выглядит так: %s", line); } return 0; } int my_getline(char s[], int lim) { int i, c; for(i = 0; i < lim -1 && (c = getchar()) != EOF && c != '\n'; ++i) { s[i] = c; } if(c == '\n') { s[i] = c; ++i; } s[i] = '\0'; return i; } /* функция reverse: переписывает строки в обратном порядке. Суть работы в следующем: т.к. мы знаем, что любая строка заканчивается символом '\0', можно на время удалить из строки данный символ и занять его место первым элементом массива. После этого можно осуществить последовательный перенос всех элементов. В последствии необходимо будет "сдвинуть" полученную строку влево */ void reverse(char s[]) { int n, i, c, j; c = n = 0; while(s[n] != '\0') { ++n; } if(s[n-1] == '\n') { c = s[n-1]; //c теперь содержит символ перехода на новую строку n = n - 2; //не будем подставлять в качестве первого символа переход на новую строку } /* выясняем, какое у нас число символов в строке: чётное или нечётное */ if((n%2) == 0) { j = n/2; } else { j = n/2 + 1; } /* переносим крайние элементы в массиве */ s[n+1] = s[0]; s[0] = s[n]; /* переносим остальные элементы */ for(i = 0; i < j; ++i) { s[i] = s[n-i]; s[n-i] = s[i+1]; } /* нужно "сдвинуть" символы влево, начиная с середины */ for(i = j; i < n + 1; ++i) { s[i] = s[i+1]; } if(c == '\n') { n = n + 1; s[n] = '\n'; } s[n+1] = '\0'; }
G(context^exten^pri): If the call is answered, transfer both parties to the specified context and extension. The calling party is transferred to priority x, and the called party to priority x+1. This allows the dialplan to distinguish between the calling and called legs of the call (new in v1.2). You cannot use any options that would affect the post-answer state if this option is used.что в примерном переводе на русский язык означает следующее:
Если вызов отвечен, он переводится на специальный контекст и указанный экстеншен. Притом, звонящий канал будет переведён на приоритет x, а вызываемый канал на приоритет x+1В итоге, был составлен "специфичный" контекст следующего содержания:
[custom-test-out-ring]Вызов данного контексте осуществляется следующим образом:
exten => s,1,Goto(chan_a)
exten => s,n,Goto(chan_b)
exten => s,n(chan_a),Ringing()
exten => s,n,Wait(20)
exten => s,n,Bridge(${DIALEDPEERNAME})
exten => s,n,Hangup()
exten => s,n(chan_b),Wait(50)
exten => s,n,Hangup()