2013-04-07 2 views
5

Вызов Perl функция смущало меня, кто-то может мне помочьвызов функции Perl смутило

catFiles называется так:

catFiles(\@LINKFILES => "$output_prefix.links"); 

catFiles функция определения:

sub catFiles { 

    unlink("$_[1]") if(exists $_[1]); 
    system qq(cat "$_" >> "$_[1]") for @{$_[0]}; 
} 

Я не» Знаю, почему есть =>, и я думаю, что это должно быть ,.

+0

'=>' иногда называют «жирной запятой». – toolic

ответ

10

=> (почти) эквивалентен , в Perl. (См the "official" documentation различий.)

Обычно он используется при определении хэша, чтобы указать связь между ключом и значением:

my %hash = (
    'a' => 1, 
    'b' => 2, 
); 

Мы могли бы написать это как my %hash = ('a', 1, 'b', 2); без каких-либо изменений в поведении, но это Безразлично» t выглядят так же хорошо. Вы могли бы даже сделать my $hash = ('a', 1 => 'b', 2);, но это просто сбивает с толку.

Кроме того, в вашем случае, вы могли бы написать код, как

catFiles(\@LINKFILES, "$output_prefix.links"); 

и он будет делать то же самое, что и версии =>.

Здесь он используется как синтаксический сахар, я предполагаю, что содержимое @LINKFILES будет объединено в "$output_prefix.links".

Смежные вопросы