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

    +1

    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
    sub PARSE_MULTIPART {
    	my    ($STREAM,$boundary,$HANDLE,$PROCESS) = @_;
    	open my $DH,'>',do{\(my $null)}; # devnull
    	local $_ = "--\r\n";
    	local $/ = \8192;
    	my ($BR,$BL) = map {qr{^ (.*?) \Q$_\E }sx,length} map {"\r\n--$_"} $boundary;
    	/^/;
    	while ( (length) < length($_.=<$STREAM>) and $PROCESS->($.,${$/}) ){
    			(print $DH
    				m{$BR}
    				       ? $1
    				       : substr($_,0,-$BL,'')
    			)
    			 &&
    				$+[0]
    		 ...
    				m{^
    					    \r\n Content-Disposition       :\ form-data
    					                                   ;\ name     = (?:"([^"]*?)"|(\S+?))
    					(                                  ;\ filename = (?:"([^"]*?)"|(\S+?)) )?
    					(?: \r\n Content-Type              :\            (.+?)                 )?
    					(?: \r\n Content-Transfer-Encoding :\            (.+?)                 )?
    					    \r\n
    					    \r\n
    				}sx
    			 &&
    				($DH = $HANDLE->({
    					      'name'     => length $1 ? $1 : $2      ,
    					$3 ? ('filename' => length $4 ? $4 : $5) : (),
    					$6 ? ('type'     =>             $6     ) : (),
    					$7 ? ('encode'   =>             $7     ) : (),
    				}))
    			 ||
    				m{^--};
    		$+[0] and substr($_,0,$+[0],''),/^/,redo;
    	};
    };

    http://oleg-bunin.livejournal.com/28302.html?thread=369550

    Запостил: SemaReal, 21 Октября 2017

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

    • Идеоматичный и красивый код на перле. кто не поймет -- тот макака
      Ответить

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