Опубликовано: 2014-06-21
Различные хаки с govnokod.ru
Полезные хаки, найденные на govnokod.ru
Выборка из БД, с занесением в хеш по именам столбцов (pruf):
my $query = "SELECT ...";
my $sth = $dbh->prepare($query);
# below technic was described in DBI docs
my %row;
$sth->execute();
$sth->bind_columns( \( @row{ @{$sth->{'NAME_lc'}} }) );
while ($sth->fetch()) {
if (defined $row{'my_field'}) {
...
}
}
Убирание пробельных символов в начале и конце (pruf):
sub trim {
@_ = @_ ? @_ : $_ if defined wantarray;
s/^\s+|\s+$//gs for @_ ? @_ : $_;
wantarray ? @_ : shift
}
trim($foo); # модификация $foo
$bar = trim($foo); # результат в $bar, $foo не меняется
trim(@foo); # модифицируем строки в массиве @foo
@bar = trim(@foo); # @foo не меняется, результат в @bar
Найти большее/меньшее число из двух (pruf):
my ($i, $j) = (42, 13);
my $max = [ $i => $j ]->[ $i <= $j ];
my $min = [ $i => $j ]->[ $i >= $j ];
Уникальные ключи из массива хешей (pruf):
my $data = [
{ one => 1, two => 2 },
{ two => 2, three => 3 },
{ three => 3, four => 4 }
];
my @datakeys = keys %{{ map { %{ $_ } } @{ $data } }};