shoorick: (Default)
[personal profile] shoorick
Обнаружил в глубинах IO::Uncompress::Base конструкцию вида $scalar = @array, оказалось, что она работает аналогично $scalar = scalar @array:
#!/usr/bin/perl -l

my @array = qw( alice bob charlie daddy elf );
print @array; # alicebobcharliedaddyelf
my $size = @array;
print $size; # 5, same as scalar @array

upd/ночью: Я чё-то сгоряча вместо scalar написал length. Так не надо. Надо спать — прям щас и больше отдыхать от компьютера — вообще.

Date: 2011-09-15 02:57 pm (UTC)
From: [identity profile] koorchik (from livejournal.com)
o_O Массив в скалярном контексте возвращает количество элементов. Можно записать "$length = @ar", либо явно указать контекст "$length = scalar( @ar )") .
Причем тут функция "length"? Или это такой вид троллинга? )

Date: 2011-09-15 04:12 pm (UTC)
From: [identity profile] ivan bessarabov (from livejournal.com)
можно еще в скалярный контекст как-то так первести:

$size = @ar + 0

tmtowtdi

Date: 2011-09-16 09:24 am (UTC)
From: [identity profile] http://Ilya Chesnokovhttp:// (from livejournal.com)
Всё же проще указать в этом случае 'scalar'. По крайней мере читабельней %)

Date: 2011-10-07 04:38 pm (UTC)
From: [identity profile] nmishin.livejournal.com
я тоже пользуюсь scalar
my $len = scalar @arr;#надежнее, а то были преценденты;)

Перепутал

Date: 2011-09-15 07:36 pm (UTC)
From: [identity profile] shoorick.livejournal.com
Ну да, scalar — перепутал под вечер :-)

Date: 2011-09-15 03:25 pm (UTC)
From: [identity profile] knutov.livejournal.com
Ну это же основы, включая и
my $size = $#array + 1;

Date: 2011-09-15 03:31 pm (UTC)
From: [identity profile] meettya.livejournal.com
хм. всегда использовал конструкцию $#array+1 , даже вот не разу lenght не пробовал поискать в доках, как-то.. а зачем?

Можно не искать

Date: 2011-09-15 07:38 pm (UTC)
From: [identity profile] shoorick.livejournal.com
Всё-таки scalar. Это я под вечер перепутал.

Date: 2011-09-15 04:52 pm (UTC)
From: [identity profile] http://users.livejournal.com/d_e_s_/
никогда не использовал функцию length ))

Date: 2011-09-15 06:42 pm (UTC)
From: [identity profile] koorchik (from livejournal.com)
Я надеюсь что для определения размера массива никто и никогда ее не использовал :).
Даже "perldoc -f length" пишет
"This function cannot be used on an entire array or hash to find out how many elements these have"
;)

И не надо

Date: 2011-09-15 07:38 pm (UTC)
From: [identity profile] shoorick.livejournal.com
Пардон, перепутал.

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 21st, 2026 06:12 am
Powered by Dreamwidth Studios