[Moscow.pm] refactoring

PEF Secure pef-secure на yandex.ru
Чт Окт 15 08:14:20 PDT 2015


On Thursday, October 15, 2015 05:43:11 Nikolay Mishin wrote:
> Hi Moscow.PM!
> 
> Существует ли какой-либо сбособ сделать более читаемым такой код?:
> 
>     push @person_row, (defined $person->get_father()) ?
> $person->get_father()->get_id() : undef; push @person_row, (defined
> $person->get_mother()) ? $person->get_mother()->get_id() : undef; push
> @person_row, ($person->get_email(), $person->get_homepage());
> 
>     my $date = "";
>     if(defined $person->get_date_of_birth()) {
>       my $date_of_birth = $person->get_date_of_birth();
>       $date .= defined $date_of_birth->day ? $date_of_birth->day."/" : "";
>       $date .= defined $date_of_birth->month ? $date_of_birth->month."/" :
> ""; $date .= defined $date_of_birth->year ? $date_of_birth->year : ""; }
> 
> источник
> https://github.com/mishin/Ftree-cpan/blob/master/lib/Ftree/Exporters/ExcelE
> xporter.pm#L53

Подозреваю, что работа с get_date_of_birth имеет некоторые правила, не может, 
наверняка, присутствовать день и год, но отсутствовать месяц. 

push @person_row, map { my $m="get_$_"; $person->$m && $person->$m->get_id } 
qw(father mother);
push @person_row, map { my $m="get_$_"; $person->$m } qw(email homepage);

-- 
PEF Developer


Подробная информация о списке рассылки Moscow-pm