- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
sub title {
my ($str, $len) = @_;
while (1) {
last if substr($str, $len, 1) eq ' ';
++$len;
}
return substr($str, 0, $len) . "...";
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−109.5
sub title {
my ($str, $len) = @_;
while (1) {
last if substr($str, $len, 1) eq ' ';
++$len;
}
return substr($str, 0, $len) . "...";
}
аналог Index.
−352.1
#!/usr/bin/perl
while ($colresults = $rez->fetchrow_hashref()) {
$hour = $colresults->{'TIME'};
if ($hour == '00') {$value0 = $colresults->{'VALUE_NUM'}};
if ($hour == '01') {$value1 = $colresults->{'VALUE_NUM'}};
if ($hour == '02') {$value2 = $colresults->{'VALUE_NUM'}};
if ($hour == '03') {$value3 = $colresults->{'VALUE_NUM'}};
if ($hour == '04') {$value4 = $colresults->{'VALUE_NUM'}};
if ($hour == '05') {$value5 = $colresults->{'VALUE_NUM'}};
if ($hour == '06') {$value6 = $colresults->{'VALUE_NUM'}};
if ($hour == '07') {$value7 = $colresults->{'VALUE_NUM'}};
if ($hour == '08') {$value8 = $colresults->{'VALUE_NUM'}};
if ($hour == '09') {$value9 = $colresults->{'VALUE_NUM'}};
if ($hour == '10') {$value10 = $colresults->{'VALUE_NUM'}};
if ($hour == '11') {$value11 = $colresults->{'VALUE_NUM'}};
if ($hour == '12') {$value12 = $colresults->{'VALUE_NUM'}};
if ($hour == '13') {$value13 = $colresults->{'VALUE_NUM'}};
if ($hour == '14') {$value14 = $colresults->{'VALUE_NUM'}};
if ($hour == '15') {$value15 = $colresults->{'VALUE_NUM'}};
if ($hour == '16') {$value16 = $colresults->{'VALUE_NUM'}};
if ($hour == '17') {$value17 = $colresults->{'VALUE_NUM'}};
if ($hour == '18') {$value18 = $colresults->{'VALUE_NUM'}};
if ($hour == '19') {$value19 = $colresults->{'VALUE_NUM'}};
if ($hour == '20') {$value20 = $colresults->{'VALUE_NUM'}};
if ($hour == '21') {$value21 = $colresults->{'VALUE_NUM'}};
if ($hour == '22') {$value22 = $colresults->{'VALUE_NUM'}};
if ($hour == '23') {$value23 = $colresults->{'VALUE_NUM'}};
if ($d_name ne $colresults->{'DNAME'}) {
unless ($first) {
push @result, {
N => $n_name,
C => $c_name,
D => $d_name,
TIME0 => get_temp($value0),
TIME1 => get_temp($value1),
TIME2 => get_temp($value2),
TIME3 => get_temp($value3),
TIME4 => get_temp($value4),
TIME5 => get_temp($value5),
TIME6 => get_temp($value6),
TIME7 => get_temp($value7),
TIME8 => get_temp($value8),
TIME9 => get_temp($value9),
TIME10 => get_temp($value10),
TIME11 => get_temp($value11),
TIME12 => get_temp($value12),
TIME13 => get_temp($value13),
TIME14 => get_temp($value14),
TIME15 => get_temp($value15),
TIME16 => get_temp($value16),
TIME17 => get_temp($value17),
TIME18 => get_temp($value18),
TIME19 => get_temp($value19),
TIME20 => get_temp($value20),
TIME21 => get_temp($value21),
TIME22 => get_temp($value22),
TIME23 => get_temp($value23),
};
$value0 = undef;
$value1 = undef;
$value2 = undef;
$value3 = undef;
$value4 = undef;
$value5 = undef;
$value6 = undef;
$value7 = undef;
$value8 = undef;
$value9 = undef;
$value10 = undef;
$value11 = undef;
$value12 = undef;
$value13 = undef;
$value14 = undef;
$value15 = undef;
$value16 = undef;
$value17 = undef;
$value18 = undef;
$value19 = undef;
$value20 = undef;
$value21 = undef;
$value22 = undef;
$value23 = undef;
}
...
}
}
.... # продолжение не менее захватывающее
Феерический код из одной не малоизвестной организации :)
−106.3
$str=~/(.+?)<\/h2><p>(.+)/;
($d2,$str)=($1,$2);
($d2,undef)=split (/\,/,$d2);
($aday,$amn)=split (/ /,$d2);
if ($amn=~/^я/i) {$amon='01'}
elsif ($amn=~/^ф/i) {$amon='02'}
elsif ($amn=~/^мар/i) {$amon='03'}
elsif ($amn=~/^ап/i) {$amon='04'}
elsif ($amn=~/^мая/i) {$amon='05'}
elsif ($amn=~/^июн/i) {$amon='06'}
elsif ($amn=~/^июл/i) {$amon='07'}
elsif ($amn=~/^ав/i) {$amon='08'}
elsif ($amn=~/^с/i) {$amon='09'}
elsif ($amn=~/^о/i) {$amon='10'}
elsif ($amn=~/^н/i) {$amon='11'}
elsif ($amn=~/^д/i) {$amon='12'}
Ещё один фрагмент граббера. Славное определение месяца :)
−106.6
# ВЫШЕ БУДЕТ МАСИВ С 1 до 7 за семь дней дабы делать выборку
for ($indx=0; $indx<7; $indx++) { ## каждый раз работаем с датой
@sql=();
my $bindings = 0;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time+$indx*86400); # а тут надо будет написать что умножить эл. масива на чтото
$date=($year+1900).'-'.($mon<9?'0':'').($mon+1).'-'.($mday<10?'0':'').$mday;
$url2=$url.$date;
#####$url2=$url;
$cinema=&get($url2);
...
} # это скобка массива
Вот такой фрагмент парсера. Комменты читать по 3-4 раза для полного впечатления
−110.6
my $style_doc = $parser->parse_string(q~
... Здесь идёт нормальный такой шаблон xslt
~);
my $stylesheet = $xslt->parse_stylesheet($style_doc);
my $results = $stylesheet->transform( $source );
my $shit = $stylesheet->output_string($results);
$shit =~ s%(<table.*?<table.*?</table>.*?</table>)\s*(<table.*?<table.*?</table>.*?</table>)\s*(<table.*?<table.*?</table>.*?</table>)%<tr><td valign="top">$1</td><td valign="top">$2</td><td valign="top">$3</td></tr>%gs;
$shit = qq{<table cellpadding="0" cellspacing="8" border="0">${shit}</table>};
print 'document.write('.JsUtils::js_object($shit).');';
В xslt, очевидно, всё не осилили - добъём регуляркой :)
−113.3
while (@PASSWORDS){
my $idx=0;
my @trl;
while (@PASSWORDS && ($idx <= $threads)){
my $pass = shift (@PASSWORDS);
chomp($pass);
my $len = length($pass);
if ($len > 5){
foreach my $user (@USERS){
chomp($user);
foreach my $url (@URLS){
chomp($url);
$trl[$idx]=threads->create(\&brut, $idx, \$url, \$user, \$pass);
$idx++;
}
}
}
undef($pass);
}
for(@trl){
my $url = $_->join;
if ($url){
@URLS = grep(!$$url, @URLS);
undef($$url);
}
}
undef(@trl);
}
фегня.
−303.1
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
И в том же духе еще 43 строки. Регулярное выражение для проверки емейл адреса. Все на полном серьезе и в соответствии со стандартом. Взято отсюда http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
−115.1
$oblom = 1;
if ($pusto == 0) {#Если пусто, то сред никем не занят
$oblom = 0;
} else {
$oblom = 0;
.....
Смотри на переменную $oblom
В продолжение 2059
−104.8
if ($i > $#files) {
$pusto = 0; #Это значит пусто
} else {
$pusto = 1;
}
Нашёл в своем давнешнем коде.
$pusto = 0; #Это значит пусто
Логика рулит.
−122
my $title=$self->{ditems}->get_field_value({SET=>'City', itemid=>$cityid, field=>'genitive_case', notitle=>1});
$title='в '.$self->{ditems}->get_field_value({SET=>'City', itemid=>$cityid, field=>'prepositional_case', notitle=>1}) unless length($title);
return '' if $title eq 'в ';