Forum Webscript.Ru

Программирование => Perl => Тема начата: airishka от 05 Июня 2004, 14:35:45

Название: print array
Отправлено: airishka от 05 Июня 2004, 14:35:45
как можно вывести содержимое массива $arr
он хеш
я уже перепробовала несколько способов
(и просто печатать и с перебором фором и с форичем... )
 и в ответ получаю или скалярный контекст типа (0x2039630) или вообще ничего, хотя при выводе отдельных элементов проблем нет (print $arr->{\'field\'}).
Название: print array
Отправлено: ondr от 05 Июня 2004, 14:43:48

for my $key (keys(%$arr)) {

    print(\'The key is: "\'.$key.\'", Value is: "\'.$arr->{$key}."\\"\\n");
}
Название: print array
Отправлено: airishka от 05 Июня 2004, 15:41:19
здорово, работает, большое спасибо!
:)

до %$ я правда не додумалась...
Название: print array
Отправлено: metton от 17 Июня 2004, 20:54:18
airishka
Цитировать
как можно вывести содержимое массива $arr
он хеш

Вообще, звучит изумительно ;)
Я, конечно, понимаю, perl разрещает пользоваться стилем программирования "детский лепет". Но всё же посетители данного форума (да и любого другого) обычно менее лояльны и понятливы чем perl.

$arr в данном случае не является массивом. В некоторых случаях для удобства его можно назвать хэшем (но никак не массивом!). Но на самом деле ни тем ни другим он не является. Это - ссылка. В данном случае на хэш.
Название: print array
Отправлено: airishka от 18 Июня 2004, 16:13:14
для изумленных:
я перл только изучаю,
и чем хеш не массив? (о ключах не надо)
а к нелояльным и непонятливым я не обращалась
Название: print array
Отправлено: commander от 18 Июня 2004, 17:42:51
airishka
Цитировать
и чем хеш не массив?

Всем! массив это массив, а хеш это хешь!
Я бы на вашем месте, коль уж вы только начинаете... ознакомился бы с терминологией...
Название: print array
Отправлено: metton от 18 Июня 2004, 19:48:44
airishka
Цитировать
и чем хеш не массив?

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

Полагаю, ты имеешь опыт общения с языками менее типизированными типа PHP, JavaScript и т.д.?
Название: print array
Отправлено: AnnA от 18 Июня 2004, 20:36:16
и чего спрашивается набросились на человека? Спросила, все все поняли, ответили. Нет теперь надо было поднять тему из-за какой-то там терминологии. :)
Название: print array
Отправлено: metton от 18 Июня 2004, 20:38:52
AnnA
Не, я, конечно, тоже номиналист, но всё же считаю что конкретные (в отличие от абстрактных, неформализованных) понятия всё же стоит называть своими именами. Хотя бы для того чтобы вас поняли.
Название: print array
Отправлено: airishka от 18 Июня 2004, 23:36:40
Цитировать
commander:
Всем! массив это массив, а хеш это хешь!


ну что ж тут непонятного... все ясно

to metton:
с языками так и есть, на данный момент.