Skip to content

Instantly share code, notes, and snippets.

View koorchik's full-sized avatar
🇺🇦

Viktor Turskyi koorchik

🇺🇦
View GitHub Profile
use Getopt::Long;
use Data::Dumper;
use Locale::gettext;
use POSIX();
use Math::Trig;
use IO::File;
use Time::HiRes qw(gettimeofday);
use SDL;
use SDL::App;
127.0.0.1:5000
Start Time: Wed Apr 13 2011 01:51:13 GMT+0300 (EEST)
(P) t=1302648673017 [st= 0] +SOCKET_ALIVE [dt=62501]
--> source_dependency = {"id":67944,"type":4}
(P) t=1302648673017 [st= 0] +TCP_CONNECT [dt= 1]
--> address_list = ["127.0.0.1:5000"]
(P) t=1302648673017 [st= 0] TCP_CONNECT_ATTEMPT [dt= 1]
--> address = "127.0.0.1:5000"
@koorchik
koorchik / perl_private_methods.pl
Created October 25, 2011 17:12
Приватные методы
# Private accessors/methods
# Помещаем ссылку на локальную анонимную функцию в локальную переменную
my $name = sub {
my $self = shift;
...
}
# Используем как обыкновенный метод, но доступен оно только внутри класса
$self->$name();
@koorchik
koorchik / perl_private_methods_named.pl
Created October 25, 2011 17:25
Приватные методы в Perl с корректным отображением стека вызовов
# Private accessors/methods with correct "caller"
use Sub::Name;
# Помещаем ссылку на локальную анонимную функцию в локальную переменную
# и присваиваем ей имя "name"
my $name = subname "name" => sub {
my $self = shift;
...
}
@koorchik
koorchik / 0_but_true.pl
Created October 25, 2011 17:40
Истинный ноль
my $rows_affected = $dbh->do('UPDATE ... WHERE') or die;
my $rows_affected = $sth->execute(...) or die; # Для не "select" запросов.
# $rows_affected может содержать ноль, но быть истинным.
# Значит в Perl может быть истинное нулевое значение
# И вот несколько вариантов при использовании
# которых Perl не сыпет предупреждения
"0.0" # Десятичная нотация. Я обычно использую именно этот вариант
# строка, которая в числовом контексте соответствуют
# нулю, а в логическом - истине
"0 but true"
perl -wE 'say "0 but true"+5'
#Получим 5 без никаких предупреждений
# Но стоит изменить хоть один символ в заветной строке
perl -wE 'say "0 but true!"+5'
'Argument "0 but true!" isn't numeric in addition (+) at -e line 1.
#---------------------------------------------------------#
# Локализация пакетных переменных
our $l = 5;
{
local $l = 4;
say $l
};
say $l;
#4
$content = do {local(@ARGV, $/) = $f; <ARGV>}
perl -e 'while (<ARGV>){ … }' f1 f2 f3
use everywhere 'MooseX::Declare',
matching => '^MyApp',
use_here => 0;