URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2916
[ Назад ]

Исходное сообщение
"Структуры в Перле"

Отправлено Игорян , 11-Май-04 17:26 
Есть ли в Perl что то подобное структурам в С ?
Нужно хранить данные из конфигурации, пример:
HOST=mars,IP=1.1.1.1,NETMASK=1.1.1.1
HOST=mars,IP=1.1.1.1,NETMASK=1.1.1.1
В С я бы создал для каждой строки структуру, состаящей из 3 переменных,
а как это делают в Perl?
Если помещать все в массив, то это же не красиво и не удобно?

Спасибо за совет.


Содержание

Сообщения в этом обсуждении
"Структуры в Перле"
Отправлено alchie , 12-Май-04 03:14 
>Есть ли в Perl что то подобное структурам в С ?
>Нужно хранить данные из конфигурации, пример:
>HOST=mars,IP=1.1.1.1,NETMASK=1.1.1.1
>HOST=mars,IP=1.1.1.1,NETMASK=1.1.1.1
>В С я бы создал для каждой строки структуру, состаящей из 3
>переменных,
>а как это делают в Perl?
>Если помещать все в массив, то это же не красиво и не
>удобно?
>
>Спасибо за совет.

%hash = (HOST=>"mars", IP=>"1.1.1.1", NETMASK=>"1.1.1.1");

print $hash{'HOST'}; #даст "mars"


"Структуры в Перле"
Отправлено Игорян , 12-Май-04 11:54 
>>Есть ли в Perl что то подобное структурам в С ?
>>Нужно хранить данные из конфигурации, пример:
>>HOST=mars,IP=1.1.1.1,NETMASK=1.1.1.1
>>HOST=mars,IP=1.1.1.1,NETMASK=1.1.1.1
>>В С я бы создал для каждой строки структуру, состаящей из 3
>>переменных,
>>а как это делают в Perl?
>>Если помещать все в массив, то это же не красиво и не
>>удобно?
>>
>>Спасибо за совет.
>
>%hash = (HOST=>"mars", IP=>"1.1.1.1", NETMASK=>"1.1.1.1");
>
>print $hash{'HOST'}; #даст "mars"

Бааальшое спасибо :-)
Все получилось!


"Структуры в Перле"
Отправлено ACCA , 17-Май-04 20:32 
>%hash = (HOST=>"mars", IP=>"1.1.1.1", NETMASK=>"1.1.1.1");
>
>print $hash{'HOST'}; #даст "mars"


И чуть посложнее:

my (%host, $h, $cfg);

push $host{'mars'}, {IP=>"1.1.1.1", NETMASK=>"1.1.1.1"};
push $host{'mars'}, {IP=>"1.1.1.2", NETMASK=>"1.1.1.2"};

foreach $h (keys %host) {
    print "$h\n";

    foreach $cfg (@{ $host{$h} }) {
       print "\t$$cfg{IP}\t$$cfg{NETMASK}\n";
    }
}


man perldsc