Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Abu Antos' ([info]syarzhuk)
@ 2002-04-26 14:03:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Музыка:Clan of Xymox - Clan of Xymox
Entry tags:code

За што я не люблю Perl

Вось такi скрыпцiк:


@a = (one, two, three);
$b = (one, two, three);
($c) = (one, two, three);


Не запускаючы яго, адкажыце, якiя значэньнi ў:

  • @a
  • $b
  • $c
  • $#a


P.S. Адказы й дадатковыя пытаньнi

P.P.S.
Адказы на дадатковыя пытаньнi


(Читать комментарии) - (Добавить комментарий)

Адказ на Extra Credit
[info]syarzhuk@lj
2002-04-29 04:20 (ссылка)
EC1.
$a = one, two, three;
Чаму роўнае $a?
Мы ўжо ведаем, што калi:
$a = (one, two, three);
то дужкi зусiм не азначаюць масыў, а выконваецца аперацыя "коска". Здаецца, тут павiнна быць тое-ж самае: выканацца "коска" на one, two, three, i $a атрымаць апошняе значэньне - three. Дык не! У гульню ўступаюць прыярытэты апэрацыяў - прысваеньне мае большы прыярытэт i выконваецца перад коскай. Таму EC1 можна запiсаць як:
($a=one), two, three.
Рэзультатам гэтага выразу будзе three, але $a атрымае значэньне one.
Менавiта таму дужкi ў
$a = (one, two, three);
проста неабходныя.

EC2.
EC2a. $b = (one, two, three);
Тут зразумела - аперацыя "коска", $b = "three"

EC2b.
@a = (one, two, three);
$b = @a
Калi скаляру прысвойваем масыў - атрымлiваем памер масыва, дакладней, колькасьць элементаў.
Таму $b = 3
(болей наглядна можна запiсаць як $b = scalar @a. Scalar @list - гэта тое-ж самае, што $#list+1)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Адказ на Extra Credit
[info]syarzhuk@lj
2002-04-29 12:16 (ссылка)
Паправачка да апошняга радку:
scalar @list
Бо case sensitive

(Ответить) (Уровень выше)


(Читать комментарии) -