pechkin: (Default)
pechkin ([personal profile] pechkin) wrote2005-12-29 02:51 pm
Entry tags:

"Ты, Моцарт -- Бах, и сам того не знаешь!.."



Вариант первый:

if (scalar(grep(
			    {
				return unless defined($_);
                                my $q = $_->qualifier;
				$log->Log(Type => 'Note', 
					  Msg => "\t" x 3 
					  . ((defined($q)) 
					     ? "VAL-qualified " 
					     : '') 
					  . "Date symbol found: " 
					  . $q_>toString);
				return set_deal_data_with_priority($deal, 
								   $ABCDealTypeSPOT::dealdataVALUE_DATE,
								   $ABCAnalyser::msgREQUEST,
								   $_,
								   !defined($q));
				} 
			    ($qual, $unqual)))) {...}


Вариант второй. Вот тут мне стало страшно за себя.

	    my $run = 0;
	    if (scalar(grep(
			    {
				return unless defined($_);
				$log->Log(Type => 'Note', 
					  Msg => "\t" x 3 
					  . ($run)
					     ? "VAL-qualified " 
					     : '') 
					  . "Date symbol found: " 
					  . $q_->toString);
				return set_deal_data_with_priority($deal, 
								   $ABCDealTypeSPOT::dealdataVALUE_DATE,
								   $ABCAnalyser::msgREQUEST,
								   $_,
								   $run++);
				} 
			    ($qual, $unqual)))) {...}



Тогда я встал. Прошелся вокруг башни. Зашел, умылся. Подумал, что, может быть, рано еще в наш советский колумбарий. Может быть, еще остались у Вселенной где-то глубоко за пазухой какие-нибудь обломки от былогодних ништяков, припасенных для меня. Может быть, еще присядет на мою крышу Господь Бог выворачивать свои карманы от накопившейся в них подкосячной пыли. Потом я сел и написал так:

	    my $date_reset = 0;
	    if (defined($qual))
	    {
		$log->Log(Type => 'Note',  Msg => "\t" x 3 . "VAL-qualified Date symbol found: " . $qual->toString);
		$date_reset = set_deal_data_with_priority($deal, 
							  $ABCDealTypeSPOT::dealdataVALUE_DATE,
							  $ABCAnalyser::msgREQUEST,
							  $qual,
							  0);
	    }
	    if (defined($unqual))
	    {
		$log->Log(Type => 'Note', Msg => "\t" x 3 . "Unqualified Date symbol found: " . $unqual->toString);
		$date_reset ||= set_deal_data_with_priority($deal, 
							    $ABCDealTypeSPOT::dealdataVALUE_DATE,
							    $ABCAnalyser::msgREQUEST,
							    $unqual,
							    1);
	    } 
	    
	    if ($date_reset) {...}

[identity profile] drf-ckoff.livejournal.com 2005-12-29 03:23 pm (UTC)(link)
Тоже не лучший вариант. Log() с set_deal_data...() лучше вынести в отдельную функцию =)

(Anonymous) 2005-12-30 11:53 am (UTC)(link)
Понятно, что лучше. Проблема в том, что я плохо знаю перловский компилятор: соптимизирует он вызовы функций в этом случае или нет?

Ну, и вообще, меня другое напугало.

[identity profile] awind.livejournal.com 2005-12-30 11:52 am (UTC)(link)
да уж. "любите ли вы grep как люблю его я?"