-
Список говнокодов пользователя Elvenfighter
Всего: 116
-
−155
- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
sub mymap(&@) {
my ($code, @result) = shift;
push @result, $code->() for (@_);
return @result;
}
sub doit_map {
return {
some_key => [
map { return $_; } qw(one)
]
};
}
sub doit_mymap {
return {
some_key => [
mymap { return $_; } qw(one)
]
};
}
print Dumper({
doit_mymap => doit_mymap,
doit_map => doit_map,
});
Реализация mymap, конечно, заслуживает отдельного треда. But leave it... for time being.
Вся соль в различии возвращаемых значений. В доке конечно описано почему оно так: http://perldoc.perl.org/functions/map.html. Но негативный осадок всё-же остался.
http://ideone.com/q1HFDW
Elvenfighter,
19 Ноября 2013
-
−123
- 1
- 2
- 3
- 4
cat /dev/zero |
while true ; do
sleep 1
done &
http://habrahabr.ru/qa/8295/
Элегантный способ заменить 0>&-
Elvenfighter,
04 Сентября 2013
-
−167
- 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
- 26
- 27
- 28
use strict;
use warnings;
my $bottom = sub {
my $test = shift // 'undef';
print "bottom( $test )\n";
};
sub sub_bottom {
my $test = shift // 'undef';
print "sub_bottom( $test )\n";
}
sub fallthrough {
&$bottom;
}
sub not_fallthrough {
&$bottom();
}
sub not_fallthrough2 {
sub_bottom;
}
fallthrough('Fallen1');
not_fallthrough('Fallen2');
not_fallthrough2('Fallen3');
Долго пытался понять как до сабины доходят аргументы, хоть она вызывается без них. Обнаружил вот это. OH SHI~
Вывод:
bottom( Fallen1 )
bottom( undef )
sub_bottom( undef )
http://ideone.com/QXT3HJ
Elvenfighter,
23 Августа 2013
-
−109
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
my $list = [];
while ( my $r = $st->fetchrow_hashref ) {
# ...
my @desc_periods = sort { $b <=> $a } keys %{ $r->{bp_periods} };
$num_p = ( $#desc_periods + 1 ) or 1;
$list->{$num_p} = $r;
}
Суть ГК в строчке 6. Картина маслом: "Я у мамы хакир".
Elvenfighter,
15 Августа 2013
-
−119
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
use strict;
use warnings;
my ($i, $j) = (42, 13);
my $max = [ $i => $j ]->[ $i <= $j ];
print "max: $max\n";
Вот-так вот: http://ideone.com/2Rd3Mr
// Вроди где-то в PBP этот пример даже есть
Elvenfighter,
31 Июля 2013
-
−105
- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
def getBoundTextRangeSL(leftBoundary, rightBoundary, pos, doc):
''' Get the range between any symbol specified in leftBoundary set and rightBoundary
Search starts from given cursor position...
NOTE `SL' suffix means Single Line -- i.e. when search, do not cross one line boundaries!
'''
if not doc.lineLength(pos.line()):
return KTextEditor.Range(pos, pos)
lineStr = doc.line(pos.line()) # Get the current line as string to analyse
found = False
cc = pos.column() # (pre)initialize 'current column'
# NOTE If cursor positioned at the end of a line, column()
# will be equal to the line length and lineStr[cc] will
# fail... So it must be handled before the `for' loop...
# And BTW, going to the line begin will start from a
# previous position -- it is why 'pos.column() - 1'
initialPos = min(len(lineStr) - 1, pos.column() - 1) # Let initial index be less than line length
for cc in range(initialPos, -1, -1): # Moving towards the line start
found = lineStr[cc] in leftBoundary # Check the current char for left boundary terminators
if found:
break # Break the loop if found smth
startPos = KTextEditor.Cursor(pos.line(), cc + int(found))
cc = pos.column() # Reset 'current column'
for cc in range(pos.column(), len(lineStr)): # Moving towards the line end
if lineStr[cc] in rightBoundary: # Check the current char for right boundary terminators
break # Break the loop if found smth
endPos = KTextEditor.Cursor(pos.line(), cc)
return KTextEditor.Range(startPos, endPos)
[color=blue]http://patches.fedorapeople.org/pate-docs/_modules/libkatepate/common.html#getBoundTextRangeSL[color]
Elvenfighter,
26 Июля 2013
-
−165
- 1
if ( $method{'out_format'} && $method{'out_format'} eq lc(q{json}) ) {
Yo dawg, we heard that you like lowercase, so we put some lowercase into your lowercase
Elvenfighter,
18 Июля 2013
-
−165
- 1
- 2
- 3
my $parent_key=$$hash{parent_key};
delete $$hash{parent_key};
$parent_key = '' if ! $parent_key;
my $parent_key = delete $hash->{parent_key} || '';
Elvenfighter,
05 Июля 2013
-
+119
- 1
border-color: #dadada #ebebeb #ebebeb #dadada;
CSS. Встречено в проекте, разработчики с пост-совка :)
Elvenfighter,
04 Июля 2013
-
+150
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
//
getMode: function(nMode) {
switch (nMode) {
case this.MODES.LEFT_BOOKEND:
return this.aModes[nMode];
case this.MODES.RIGHT_BOOKEND:
return this.aModes[nMode];
case this.MODES.BOTH_BOOKENDS:
return this.aModes[nMode];
case this.MODES.NONE:
default:
return this.aModes[this.MODES.NONE];
}
},
Наверное уже боян, но вот же он, опять!
https://github.com/scirelli/ExtjsBreadCrumbs/blob/master/js/ux/breadCrumbs.js
Elvenfighter,
11 Июня 2013