1. Perl / Говнокод #8301

    −116

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    sub addOrUpdateContr {
    	my $doc   =  shift;
    
    	my( $id ) = $common->dbh->selectrow_array( 
    		qq|SELECT contrid FROM... | );
    
    	$id = $id || 0; 
    
    	if ( $id ) {
                 # вариант действий 1 ....
                 return $id;
    	}
    
    	if( !$id ) {
                 # вариант действий 2 (делает INSERT)....
                 return $id;
    	} else {
                 # вариант действий 3 ....
                 return $id;
    	}  
    
    	return $id;
    }

    Просто красивая функция.
    И то, что при названии addOrUpdateContr никакого апдэйта она не делает в ней далеко не самое замечательное.

    Mihard, 26 Октября 2011

    Комментарии (2)
  2. Perl / Говнокод #7903

    −110

    1. 1
    Понтовый язык. Не полный по Тьюрингу...

    alexoy, 20 Сентября 2011

    Комментарии (15)
  3. Perl / Говнокод #7793

    −84

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $sth = $dbh->prepare("select *,DATE(DTime),DATE(RDTime),MONTH(DTime),DAY(DTime),HOUR(DTime),MINUTE(DTime),UNIX_TIMESTAMP(DTime) 
    from tt_list where Type!=0  $where order $order");
    ...
    if ($row->{'HOUR(DTime)'}<10) {$row->{'HOUR(DTime)'}="0$row->{'HOUR(DTime)'}"};
    if ($row->{'MINUTE(DTime)'}<10) {$row->{'MINUTE(DTime)'}="0$row->{'MINUTE(DTime)'}"};
    ...
    print "...<td width=60 nowrap><img src=../images/icon_clock.gif width=16 height=16 border=0>
     $row->{'HOUR(DTime)'}:$row->{'MINUTE(DTime)'}</td>...";

    Выводим время...

    Raynor, 07 Сентября 2011

    Комментарии (3)
  4. Perl / Говнокод #7729

    −180

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    my $success=0;
    my $error=0;
    
    ...        
    
    my $result_mail=MailUtils::attach_mail(-to=>$share_email,-message=>$message,-subject=>'Новый рецепт',-src_enc => $Cfg::encoding,-attach=>\@att) or die 'no';
    unlink($file) if $result_mail;
    $error=1 if !$result_mail;
    
    $success=1 if $error==0;
    print CGI::redirect($Cfg::url{root}."/woman/recipes/share/?success=$success&error=$error");

    Используем две переменных для статуса, видимо, для надёжности

    Suor, 01 Сентября 2011

    Комментарии (26)
  5. Perl / Говнокод #7465

    −179

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #count pages
    	my $counter; my $pagescount = 0; my $pagesstr;
    	for (my $i = 0; $i <= $count; $i++)
    	{
    		if ($counter == POSTS_PER_PAGE)
    		{
    		    my $a,$b; if ($pagescount == $pagenum) { $a = "["; $b = "]"; } else { $a = ""; $b = ""; }
    			$pagesstr = $pagesstr."$a<a href=\"wakaba.pl?task=mpanel&admin=$admin&page=$pagescount\">".($pagescount +1)."</a>$b" if ($pagescount == 0);
    			$pagesstr = $pagesstr.", $a<a href=\"wakaba.pl?task=mpanel&admin=$admin&page=$pagescount\">".($pagescount +1)."</a>$b" if ($pagescount != 0);
    			$pagescount++; $counter = 0;
    		} else { $counter++; }
    	}

    Вот такой веселый код пишут программисты дватиреча и на этом этот самый имиджборд и работает.

    7ion, 05 Августа 2011

    Комментарии (18)
  6. Perl / Говнокод #7207

    −84

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    my $cat='';
    
              if ($q->param('category'))
              {
              my @originalCategory = $q->param('category')?$q->param('category'):undef;
              $cat='and (';
              my $arg;
                                                    foreach  $arg(@originalCategory)
                                                    {
                                                    $cat.= '(ngf.category=';
                                                    $cat.= $arg;
                                                    $cat.= ') or ';
                                                    }
              chop ($cat);chop ($cat);chop ($cat);chop ($cat);
    
              $cat .= ')';
              }

    формирование where для выборки по категориям указанных пользователем

    BuHHu-nyX, 08 Июля 2011

    Комментарии (3)
  7. Perl / Говнокод #7193

    −161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    sub hex_to_string
    {
        my ($res, $str, $i) = ("", shift, 0);
        $str =~ tr/A-Z/a-z/;
        while ($i < length($str))
        {
    	my $m = ord(substr($str, $i++, 1));
    	my $n = ord(substr($str, $i++, 1));
    	if ($m >= 48 && $m <= 57)
    	{
    	    $m -= 48;
    	}    
    	if ($m >= 97 && $m <= 102)
    	{
    	    $m = 10 + $m - 97;
    	}    
    	if ($n >= 48 && $n <= 57)
    	{
    	    $n -= 48;
    	}
    	if ($n >= 97 && $n <= 102)
    	{
    	    $n = 10 + $n - 97;
    	}
    	$res .= chr($m * 16 + $n);
        }
        
        $res = join("\n", split(/\r\n/, $res));
        return $res;
    }

    Печально, что силу регулярок недооценивают.
    sub hex_to_string($)
    {
    my $input_hex_data = shift;
    my $result = $input_hex_data;
    $result =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
    return $result;
    }

    antoha_by, 07 Июля 2011

    Комментарии (24)
  8. Perl / Говнокод #7129

    −116

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    sub _check_sms_hash {
        my $self = shift;
        my $q = shift;
    
        my $qs = $q->param('id').$q->param('phone').$q->param('trigger').$q->param('text').$q->param('date').$q->param('check').$self->_sicretsms();
        my $hash = $self->{DB}->selectrow_array("SELECT MD5(?)", undef, $qs);
        return 1 if $hash eq $q->param('sign');
        return 0;
    }

    Православное вычисление контрольной суммы.

    Alikus, 01 Июля 2011

    Комментарии (8)
  9. Perl / Говнокод #6482

    −116

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    #!/usr/bin/perl -w
    
    @arr=<>;
    
    @arr=reverse(@arr);
    $ac=$#arr+1;
    print "array size $ac\n";
    @arr = sort { $a <=> $b } @arr;
    while($ac>2){
      $ac=$#arr+1;
    print "size $ac";
      print "reverse \n@arr\n\n";
    if(!exists($arr[$ac])){
    $eln=$ac-1;
    print "\nDelete element $arr[$eln] $eln und $arr[$ac] $ac\n";
      splice @arr, $ac-2,2;
    };
    };

    Скрипт на perl

    AliceGoth, 26 Апреля 2011

    Комментарии (51)
  10. Perl / Говнокод #6370

    −125

    1. 1
    2. 2
    3. 3
    'aaa' =~ /a(?=)aa/;
     'aaa' =~ /(?=)aaa/;
     'aaa' =~ /aaa(?=)/;

    в ActiveState Perl 5.10.0 build 1003 неожиданно обнаружил грубую ошибку в регулярных выражениях. Конструкция (?=), которая означает "с этого места имеется пустой фрагмент текста" вообще не работает! То же относится к аналогичной конструкции "заглядывания назад" (?<=). Например, не находится соответствие в операторах и т.д. Я пришёл в недоумение, ведь это работало правильно в ActiveState Perl 5.8.7 и в более ранних версиях, которые были установлены у меня прежде.

    BlackMonolit, 15 Апреля 2011

    Комментарии (17)