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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Срез хеш-таблицы через ссылку 
V
    Опции темы
Danissimo
Дата 29.1.2007, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Пусть дан код:
Код

%ht = (
    k1 => 'v1',
    k2 => 'v2'
);
$rf = \%ht;

@keys = qw(k1 k2);
print join(', ', @ht{@keys}) . "\n";


Как записать print, если предположить, что доступна только переменная $rf, а перменная %ht не доступна?
PM MAIL   Вверх
nitr
Дата 29.1.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Код

#!perl
use strict;

my %ht = (
    k1 => 'v1',
    k2 => 'v2'
);
my $rf = \%ht;

my @keys = qw(k1 k2);
print join(', ', map {$rf->{$_}} @keys) . "\n";


Добавлено @ 22:17 
Код

#!perl
use strict;

my %ht = (
    k1 => 'v1',
    k2 => 'v2'
);
my $rf = \%ht;

my @keys = qw(k1 k2);
print join(', ', @$rf{@keys}) . "\n";


Добавлено @ 22:18 
но чтоб понять напишу так сказать "правильно"
@{ $rf }{@keys}


--------------------
PM   Вверх
Danissimo
Дата 30.1.2007, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В жизни бы не догадался. Спасибо большое, nitr!
PM MAIL   Вверх
gcc
Дата 12.10.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



нашел сабж

Цитата

- DBI::fetchrow_hashref

   $hash_reference = $statement_handle->fetchrow_hashref;

   DBI::fetchrow_hashref работает так же, как DBI::fetchrow_arrayref,
   но возвращает ссылку на ассоциативный, а не на обычный массив.
   Ключами хэша являются имена полей, а значениями - значения в  этой
   строке данных .

   Пример:
   use DBI;
   my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);
   my $query = "SELECT * FROM mytable";
   my $mytable_output = $db->prepare($query);
   $mytable_output->execute;
   my %row1 = $mytable_ouput->fetchrow_hashref;
   my @field_names = keys %row1;
   # @field_names содержит - теперь имена всех полей в запросе .
   # Это делается только один раз . Во всех следующих строках будут те же поля .
   my @row1 = values %row1;



не могу понять как посмотреть что это за данные, @field_names @row1, и как ими воспользоватся?

искал одну вещь, чтобы вывести всю таблицу, например таблица id|name|data|time

если id равняется '2', то посмотреть значения столбцов этой строке например $$hash{'name'} $$hash{'data'} и если бы без цикла, чтобы место не занимало много

UPD: кажется прогнал, можно наверное примерно вот так 
Код

SELECT t1.user,
                                    t1.j,
                                    t2.id,
                             FROM s AS t1,
                                 u AS t2
                                where t1.id='2' 


все равно интересно как посмотреть эти данные  @field_names @row1, дампером не получилось Dumper(@field_names);



Это сообщение отредактировал(а) gcc - 12.10.2008, 13:22
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 12.10.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



gcc, зачем зассорять данный топик??? У вас такая привычка?
Я понимаю, что тема может с вашим вопросом совпадает, но никак не с вопросом топик-стартера smile

my %row1 = $mytable_ouput->fetchrow_hashref; тут вообще имхо ошибка
должно быть my $row1 = $mytable_ouput->fetchrow_hashref;
для вашего запроса (SELECT ... WHERE id=2) выводим так:
Код

my $row1 = $mytable_ouput->fetchrow_hashref;
print "Name: ".$row1->{name}." Date: ".$row1->{data};


Добавлено через 1 минуту и 50 секунд
gcc, и читайте документацию perldoc, а не "левые переводы". Я такого не нашел в perldoc.

Добавлено через 3 минуты и 25 секунд
Если вам переводить - то воспользуйтесь translate.google.ru с вводом ссылки perldoc.perl.org smile


--------------------
PM   Вверх
gcc
Дата 12.10.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



спасибо, я случайно сюда запостил

про эту матрицу с хэшами я в perldoc не видел, может было но по другому или не увидел... в гугле есть много статей с массивом @field_names в  perldoc, только не видел чтобы с DBI

Это сообщение отредактировал(а) gcc - 12.10.2008, 13:44
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 12.10.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



gcc, вам помогло?
Код
my $row1 = $mytable_ouput->fetchrow_hashref;
print "Name: ".$row1->{name}." Date: ".$row1->{data};



--------------------
PM   Вверх
gcc
Дата 12.10.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



наверное, пробую, сделаю так...

вот про это с какой-то книги, ошибка была
http://oreilly.com/catalog/msql/errata/msql.unconfirmed



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


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

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


 




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


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

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