1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. Perl / Говнокод #6369

    −112

    1. 1
    print "Match" if 'ab' =~ /^a?(?=b)b/;

    Я не один раз находил ошибки в Perl особенно в Perl регулярных выражениях. Некоторые из них уже исправили, но одна остаётся и в версии ActiveState Perl 5.10.

    BlackMonolit, 15 Апреля 2011

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

    −127

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #!/bin/perl                                                                                    
    use Crypt::Blowfish; use Crypt::CBC;                                                           
    $encrypt_key= 'key';                                                                           
    $crypted_text = '53616c7465645f5fd56d1d101fb3adbf1d10cd5ce49b40868dd03da0de64c86bde6bfc3102e20aad6f4447b1fd1aacd8de66f6709cb643b56ebd16c8b8b6f86c0abc6dd6750ad3d71a558d7236102d8e730d11ded42a26d1';                                                                       
    $cipher_handle = new Crypt::CBC($encrypt_key,'Blowfish');                                      
    $text = $cipher_handle->decrypt_hex($crypted_text);                                            
    print $text;

    Не говнокод.

    Tanger, 01 Апреля 2011

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