Почему для массива выводятся разные значения-2 с использованием (запятая) и. (Знак точки)? - PullRequest
0 голосов
/ 21 февраля 2011
 my @arr = qw(12 5 78 56 1 785);
 my @new_arr = sort { $a <=> $b } @arr;
 print  @new_arr . "\n\n" ; #### print 6
 print  @new_arr , "\n\n" ; #### print value in short order

Привет, Может ли кто-нибудь сказать мне, почему он печатает значение-2.

Thx, Виджей

1 Ответ

10 голосов
/ 21 февраля 2011

Первый выводит конкатенацию @new_arr со строкой "\ n \ n".Эта связь заставляет скалярный контекст на @new_arr, следовательно, он оценивается как число элементов, в вашем случае 6.

Второй оценивает все аргументы в print в контексте списка, следовательно, @new_arr оценивает всписок всех его элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...