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

    −104

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    if ($key eq $default_key){
    		my $author = $default_author;
    		if ($release){
    			if (length $release <= $max_release){
    				if (length $description <= $max_description){			
    					if ($filename){
    						if (clearfn(\$filename) eq 1){
    							if (! -e "$files_dir/$filename"){
    								$release = clear($release);
    								$description = clear($description);
    								$description = bb($description);
    								open FILE, '>>db.txt' or die $!;
    								print FILE "$release\t$filename\t$description\t$author\t" . ftime() . "\n";
    								close FILE;
    								open FILE, ">$files_dir/$filename" or die "$!";
    								binmode FILE;
    								while (<$filehandle>){
    									print FILE;
    								}
    								close FILE;
    								$result = 'Файл успешно добавлен!';
    								rss();
    							}
    							else {
    								$result = 'Ошибка: Файл с таким именем уже загружен!';
    							}
    						}
    						else {
    							$result = 'Ошибка: Недопустимое расширение файла!';
    						}
    					}
    					else {
    						$result = 'Ошибка: Нет файла!';
    					}
    				}
    				else {
    					$result = "Ошибка: В описании должно быть не более $max_description символов!";
    				}
    			}
    			else {
    				$result = "Ошибка: В названии должно быть не более $max_release символов!";
    			}
    		}
    		else {
    			$result = 'Ошибка: Нет названия!';
    		}
    	}
    	else {
    		$result = 'Ошибка: ';
    	}

    Писал паскалеребенок

    Запостил: nyaknyan, 14 Июня 2012

    Комментарии (15) RSS

    • Кто-нибудь, покажите ему исключения.
      Ответить
    • Написано абсолютно структурно, по заветам Кнута.
      Ответить
      • т.е. кнут не одобряет хотя бы так?
        if (failed1) {
           // do fail1 code
        } else if (failed2) {
           // do fail2 code
        } else if (failed3) {
           ...
        } else {
           // do absolutely success code
        }
        Ответить
      • > по заветам Кнута Дейкстры
        Кнут продвигал literate programming
        Ответить
        • Да-да, всё правильно. Ведь это Дейкстра презирал безусловные переходы под любым соусом.
          Ответить
    • А что не так? Вы же все ненавидите исключения, правда? Говорите что исключения не нужны, что это "гоуту в никуда" и что ошибки надо явно обрабатывать?

      Можно конечно переписать как
      if (! $release){
      return "ошибк 1";
      }
      if (!(length $release <= $max_release))
      {
      return "ошибк 2";
      }


      Так мы избавимся от лесенки, но вы все начнете говорить что множественные ретёрны это плохо, правда?
      Ответить
    • Закусив пирожками, я налил в бутылку из-под "Кока-колы" маминого кислого квасу, взял удочки, коробку с крючками и леской, и мы, не спеша перебивая друг друга рассказами о случившихся с нами событиях, двинулись к речке по пыльной, раскаленной солнцем проселочной дороге.
      Ответить

    Добавить комментарий