Автор Тема: Подскажите с кодом  (Прочитано 4941 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gekt0r

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Подскажите с кодом
« : 05 Февраля 2008, 16:15:18 »
Всем привет, сейчас разбираю код, написанный другим человеком, своих знаний не хватает, в инете тоже толком ничего не нашел, очень нужна помощь...

в процессе работы программа работает с данными в нескольких двумерных массивах. Один из них - $table.

Там есть, к примеру, такое просваивание:
$table->[1]->[1]->{value} = чему-то там;
Я не понимаю, что означает это {value}, зачем оно нужно и что это вообще... При выводе на печать выводится значение ячейки таблицы. При выводе без этого {value} выводится ссылка на хэш (типа HASH(0x9c2d728) ). Интуитивно понятно, что эти фигурные скобки - какая-то операция типа обращения к методу. Но можете объяснить, как там точно все происходит?
Есть похожие обращения, типа $table->[1]->[1]->{root}, $table->[1]->[1]->{span}, $table->[1]->[1]->{no_display}, $table->[1]->[1]->{colspan}.

эти вообще на печать ничего не выводят, но в программе используются, что-то в них сравнивается, непонятно что...

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Подскажите с кодом
« Ответ #1 : 05 Февраля 2008, 16:45:05 »
perldoc perldsc

Оффлайн Gekt0r

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Подскажите с кодом
« Ответ #2 : 05 Февраля 2008, 17:39:06 »
Спасибо, конечно...
Но вот я удивляюсь, знающему человеку ответить - 10 минут времени, а мне в доках сутки копаться надо, чтобы найти ту порцию инфы, которая нужна :(

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Подскажите с кодом
« Ответ #3 : 05 Февраля 2008, 18:17:29 »
это, как бы, основы.
если вы их не знаете, то просто слишком много рассказывать придется.

если я скажу, что это ключ ссылки на хеш, оно вам поможет?

Оффлайн It-sys

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Подскажите с кодом
« Ответ #4 : 06 Февраля 2008, 11:01:26 »
Цитировать
arto:
это, как бы, основы.
если вы их не знаете, то просто слишком много рассказывать придется.


Полностью согласен :-)

Оффлайн Gekt0r

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Подскажите с кодом
« Ответ #5 : 06 Февраля 2008, 11:34:59 »
Цитировать
arto:
если я скажу, что это ключ ссылки на хеш, оно вам поможет?

ну если объянсите, что такое ключ, но вполне)
если я правильно понял, у меня есть ссылка на двумерный массив) Меня смущает, что все эти {root}, {value} и т.п. нигде не объявлены, и непонятно, откуда берутся в них значения. Если, кстати, подставить в фигурные скобки полную абракадабру, то никакой ошибки не возникает, откуда можно предположить, что эти конструкции формируются динамически... Вопрос только, как:) И почему в них есть пустые значения)
доки я почитаю, разумеется. Но если можно сжато объяснить, будет классно)

Оффлайн ravshaniy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 191
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Подскажите с кодом
« Ответ #6 : 06 Февраля 2008, 11:43:31 »
очень напоминает

таблица->[tr]->[td]->{atribute}

задание свойств таблицы из кода. очень похоже на это

а по поводу:
Цитировать
Gekt0r:
выводится ссылка на хэш (типа HASH(0x9c2d728) ).

советую Data:: Dumper
http://search.cpan.org/~ilyam/Data-Dumper-2.121/Dumper.pm
убили кенни, сволочи

Оффлайн It-sys

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Подскажите с кодом
« Ответ #7 : 08 Февраля 2008, 10:27:57 »
У тебя в конце идет идет ссылка на hash (именованный массив).


my %HASH;
$HASH{value} = "var1";
$HASH{name} = "perem";

print "$HASH{name}=$HASH{value} ($HASH{Attr})";


Выдаст "perem=var1 ()"

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28