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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> хэш массивов, откуда появляются данные ключи хеша ?? 
V
    Опции темы
Bulat
Дата 13.8.2007, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


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

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



Код


open (LOG, ">log");

foreach my $langs (@newLangs) {
    my @newLanguagesTmp = $langs->{langName} =~ m/$pattern/g;

    foreach my $elem(@newLanguagesTmp) {
        unless (($elem eq "and") || ($elem eq "Scripts")) {
            ${$hash{$elem}}[0] = $langs->{langName};
            push @{$hash{$elem}},  $langs->{langId};
        }

        foreach my $key(%hash) {
            print LOG ("$key\n");
        }
    }

}

close(LOG);



вот что в файле log
Код

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)

ARRAY(0x806fcc4)


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


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
nitr
Дата 13.8.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



измени строчку и посмотри что будет

Код

print LOG ("$key\n");


на 
Код

print LOG join("\t", @$key)."\n";


P.S.: форум глюканул...

Это сообщение отредактировал(а) nitr - 13.8.2007, 16:41


--------------------
PM   Вверх
nitr
Дата 13.8.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

print LOG ("$key\n");


на 
Код

print LOG join("\t", @$key)."\n";


P.S.: форум глюканул...


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


татарский Нео
***


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

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



nitr, 

Can't use string ("") as an ARRAY ref while "strict refs" in use at

это во-первых, во-вторых, далее 

Код

foreach my $key(%hash) {
    print ("k-$key\t");
    foreach my $element(@{$hash{$key}}) {
        print ("e-$element\t");
    }

    print ("\n");
}


вот тут, как я писал выше, "ключом" выводит и то, что должно быть и вот эти ссылки(поочередно - ссылка, верные данные, ссылка, верные данные). В целом этот маленький трабл на функциональности не скажется, разве что лишние ключи -> быстродействие скрипта ухудшается, вот этого хочу и избежать.

как-то не хочется писать no use `strict refs`. Сталкивался -> осадки в душе не самые приятные smile



--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
nitr
Дата 13.8.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Bulat, 
Цитата

ARRAY(0x806fcc4)

это ссылка на массив, для разыменовывания пишем @{}

все что вы указали, ТОЛЬКО В ОДНОМ месте указана запись в файл =)
сделайте проверку
Код

print LOG join("\t", @$key)."\n" if $key and ref($key) eq 'ARRAY';



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


татарский Нео
***


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

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



nitr, пасиба большое за написанное, вообще мой косяк заключался в другом, так сказать маленькая невнимательность smile


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


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

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


 




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


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

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