Автор Тема: вот купил себе книгу "Программирование на Перл"  (Прочитано 5333 раз)

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

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
после первых 30 минут чтения я понял что:
1. Стоимость книги себя оправдало.
2. Предыдущая "Изучаем Перл" - приблизительно как букварь по сравнению с "Война и мир".
3. Понял, что ничего не понял. В связи с этим открываю новый топик для большей понятливости.

Почти сразу я сталкнулся с многомерным хеш собственно по примеру с книги есть вопрос:
$wife{"Iakov"} = ["Liya", "Raxil", "Valla", "Zelfa"];
print qq($wife{"Iakov"}[1]\\n); #выводит Raxil
а как сделать что б выводило все 4 значения?

что значит строчка:
$gradies{$student} .= $grade . " ";
исходя из того что я понял:
создается хеш, далее к $grade дописывается пробел и потом к названию хеш или к ключу дописывается (.=) $grade.
булемурда какая то получается.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
вот купил себе книгу "Программирование на Перл"
« Ответ #1 : 29 Сентября 2003, 13:09:34 »
Цитировать
Yaroslav:
а как сделать что б выводило все 4 значения?


print @{$wife{Iakov}};
print join(\' \', @{$wife{Iakov}});
print "$_ " for @{$wife{Iakov}};
print $wife{Iakov}->[$_] . \' \' for 0 .. $#{$wife{Iakov}};

и еще 1000 и 1 способ :)

Цитировать
что значит строчка:
$gradies{$student} .= $grade . " ";


К значению хэша %gradies, по ключу $student, добавляется значение переменной $grade и пробельчик.
0 OK, 0:1

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
вот купил себе книгу "Программирование на Перл"
« Ответ #2 : 29 Сентября 2003, 14:45:09 »
Цитировать
ondr:
print @{$wife{Iakov}};
print join(\' \', @{$wife{Iakov}});
print "$_ " for @{$wife{Iakov}};
print $wife{Iakov}->[$_] . \' \' for 0 .. $#{$wife{Iakov}};

вот спасибо.
Цитировать
ondr:
К значению хэша %gradies, по ключу $student, добавляется значение переменной $grade и пробельчик.

не понимаю зачем тогда в книге морочат голову и добавляют один символ если это можно записать
$gradies{$student} = $grade . " ";
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
вот купил себе книгу "Программирование на Перл"
« Ответ #3 : 29 Сентября 2003, 14:52:56 »
Цитировать
Yaroslav:
не понимаю зачем тогда в книге морочат голову и добавляют один символ если это можно записать
$gradies{$student} = $grade . " ";


Записать так можно но смысл будет другой.
Потому что "=" и ".=" разные вещи.
Внимательнее прочитай мой предыдущий пост. Там ни слова не было о перезаписи, там шла речь о добавлении значения.
0 OK, 0:1

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
Здравствуйте.
В продолжение темы:
1. что то у меня не получается с написанием:
$tema{"Афиши"} = {
"A2" => {
             "Плотер" => ["16"],
             "Офсет" => ["17"], };
"A3" => {
             "Плотер" => ["18"],
             "Принтер" => ["19"],
             "Офсет" => ["20"], };
};

$tema{"Визитки"} = {
"Шелкография" => ["13"],
"Принтер" => ["14"],
"Офсет" => ["15"],
};
print @{$tema{"Афиши"}{"A2"}{"Плотер"}};    # выдает ошибку в "A3" => {

2. Правильно ли я начал мыслить? мне надо сделать так сказать прайс-листы типа ( http://www.urp.kiev.ua/index.cgi?req=priceview )
но как видите (пример выше) с каждой рубрики не известно сколько будет переходов (от 1 до 3), цифрами в значении хеша я показываю в какой строке файла будет храниться запись по данной позиции.
А как бы Вы это сделали?
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
1.
"Офсет" => ["17"], };  <- Исправь все ошибки
print $tema{"Афиши"}{"A2"}{"Плотер"}[0];
The documentations is your friend

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
NeoNox
ты знаешь, показывать что ты знаешь и не помогать - не хорошо.
Цитировать
NeoNox:
"Офсет" => ["17"], }; <- Исправь все ошибки

как то я и сам знал что ошибки, но где? цитирую свое сообщение:
- 1. что то у меня не получается с написанием:

Цитировать
NeoNox:
print $tema{"Афиши"}{"A2"}{"Плотер"}[0];

зачем? оно тут не при делах.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
А не стыдно, а?
$tema{"Афиши"} = {
"A2" => {
"Плотер" => ["16"],
"Офсет" => ["17"], }
"A3" => {
"Плотер" => ["18"],
"Принтер" => ["19"],
"Офсет" => ["20"], }
};
The documentations is your friend

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
NeoNox:
А не стыдно, а?

в том то все и дело что пока не стыдно...
syntax error, near ""A3""
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Мда...
Интерпритатор тебе пальцем показал где искать.
перед A3 закончилось определение $tema{"Афиши"}.
Вот как он выглядел:
$tema{"Афиши"} = {
"A2" => {
"Плотер" => ["16"],
"Офсет" => ["17"], };
А дальше у тебя идет что? А3
Вопросы?
The documentations is your friend

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
вот купил себе книгу "Программирование на Перл"
« Ответ #10 : 03 Октября 2003, 18:34:34 »
Цитировать
NeoNox:
Вопросы?

за то что обьяснил - спасибо.
но проблемма то не исчезла, я хотел сделать многомерный хеш по первому ключу, а вышел как обыкновенный ...
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
вот купил себе книгу "Программирование на Перл"
« Ответ #11 : 03 Октября 2003, 18:42:57 »
нк прямо как ручник, аж самому стыдно стало :) (специально для NeoNox)
$tema{"Афиши"} = {
"A2" => { "Плотер" => ["16"], "Офсет" => ["17"], } ,
"A3" => { "Плотер" => ["18"], "Принтер" => ["19"], "Офсет" => ["20"], }
};
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
вот купил себе книгу "Программирование на Перл"
« Ответ #12 : 03 Октября 2003, 18:46:45 »
Yaroslav
Когда у тебя хеш внутри хеша, точки с запятой внутри не ставятся.

$tema{"Афиши"} = {
    "A2" => {
         "Плоттер" => ["16"],
         "Офсет" => ["17"]
    }, #здесь должна быть запятая
    "A3" => {
        "Плоттер" => ["18"],
        "Принтер" => ["19"],
        "Офсет" => ["20"]
    } #а здесь - ничего
};
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
вот купил себе книгу "Программирование на Перл"
« Ответ #13 : 03 Октября 2003, 18:52:01 »
Упс.. Опоздал. :)

Кстати, Yaroslav:
$tema{"Афиши"} = {
"A2" => { "Плотер" => ["16"], "Офсет" => ["17"], #<-- последняя запятая не нужна
} ,
"A3" => { "Плотер" => ["18"], "Принтер" => ["19"], "Офсет" => ["20"], #<-- здесь тоже не обязательно
}
};
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
вот купил себе книгу "Программирование на Перл"
« Ответ #14 : 06 Октября 2003, 00:15:53 »
Цитировать
mike:
последняя запятая не нужна

знаю, спасибо, это как бы так, случайно осталась (в принципе то ничего не меняется :)
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

 

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