URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7376
[ Назад ]

Исходное сообщение
"Perl (азы)"

Отправлено Azudim , 23-Май-08 15:55 
Подскажите плз, зачем в такой конструкции используется shift ? Я понимаю что что-то делается с первым аргументом, но толково описание сути такого метода нигде найти не могу =(

sub sec2date {                                                                  
  my $secnum = shift;                                                          
  return "0000-00-00 00:00:00" if ($secnum == 0);                              
                                                                                
  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secnum);
  $year += 1900;  $mon++;                                                      
  $sec  = sprintf("%02d",$sec);                                                
  $min  = sprintf("%02d",$min);                                                
  $hour = sprintf("%02d",$hour);                                                
  $mon  = sprintf("%02d",$mon);                                                
  $mday = sprintf("%02d",$mday);                                                
                                                                                
  return "$year-$mon-$mday $hour:$min:$sec";                                    
}                                                                              


Содержание

Сообщения в этом обсуждении
"Perl (азы)"
Отправлено parad , 23-Май-08 16:19 
shift возвращает первый элемент массива и удаляет его оттуда. если явно не указан массив - работает со служебным @_. при вызове функции все параметры пишутся в @_. => в данном примере shift возвращает первый параметр, переданный функции.