Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что означает такая конструкция? 
V
    Опции темы
Валерия
Дата 11.9.2009, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: нет
Всего: 8



Код

$ua = LWP::UserAgent->new();
$data = [
'a' => '1',
'b' => '2'
];

#Как с этой строки добавить к массиву $data значение допустим 'c' => '3'?

$content = $ua->post("http://127.0.0.1", $data)->as_string;


Смотрим комментарий кода.
$data{"c"} = '3' не помагает

Собственно что означает такая конструкция ['a' =>'b'] ?
Это ведь похоже и не ассоциативный массив...

Это сообщение отредактировал(а) Валерия - 11.9.2009, 02:44
PM MAIL   Вверх
gcc
Дата 11.9.2009, 04:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



может как-то так ?

$data[0]{"c"} = '3' 

Код


foreach (@{$data}) {

print $_->{a};

}


Это сообщение отредактировал(а) gcc - 11.9.2009, 04:52
PM WWW ICQ Skype GTalk Jabber   Вверх
amg
Дата 11.9.2009, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Такая конструкция конструкция означает пудрение мозгов  smile 
Дело в том, что оператор => это (за мелкими исключениями) синоним запятой, применяется он почти всегда для хэшей, в итоге имеем намек на хэш, которого на самом деле нет.
$data -- это ссылка на анонимный массив, то же самое, что 
$data = ['a', '1', 'b', '2'];

Следовательно, вопрос "Как с этой строки добавить к массиву $data значение допустим 'c' => '3'?" не совсем корректен, можно сделать
push @$data, 'c' => '3'; # => -- синоним запятой
Тем самым в конец массива добавится два элемента, 'c' и '3'.
Либо 
push @$data, {'c' => '3'};
Тем самым в конец массива добавится один элемент, ссылка на анонимный хэш ('c' => '3').
PM MAIL   Вверх
chorny
Дата 14.9.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.7.2009
Где: Молдавия

Репутация: нет
Всего: нет



Цитата(Валерия @  11.9.2009,  02:37 Найти цитируемый пост)
$ua = LWP::UserAgent->new();
$data = [
'a' => '1',
'b' => '2'
];
#Как с этой строки добавить к массиву $data значение допустим 'c' => '3'?


Первое с чего надо начинать - это добавить "use strict;use warnings;use diagnostics;". Сразу после первой строки c #!
Код


use strict;use warnings;use diagnostics;
my $ua = LWP::UserAgent->new();
my $data = { #если это ссылка на хэш, а не на массив
'a' => '1',
'b' => '2'
};
$data->{'c'}=3;



PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.