|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Ponomarenko 2:5030/1067.10 27 Jan 2003 19:48:18 To : All Subject : В чем проблема? --------------------------------------------------------------------------------
Есть такой файл:
=== Cut ===
user3 group3 comment
user1 group1
user2 group2
user1 group2 comment
user4
user3 group2
user2 group4 comment
user3 group1
=== Cut ===
Hужно вывести список юзеров отсортированный в обратном порядке с указанием всех
групп, в которые он входит, т.е. :
user4:
user3: group1, group2, group3
user2: group2, group4
user1: group1, group2
Вот это работает неправильно:
=== Cut ===
#!/usr/bin/perl -w
use strict;
my($rec,$user,$group,$comment,$key);
my %hash;
open(DATA,"data");
print"------------------------------\n";
while(defined($rec=<DATA>)) {
chomp($rec);
($user,$group)=split(/ /,$rec);
if(!defined($group)) {$hash{$user}="";}
if(defined($group) and !defined($hash{$user})) {$hash{$user}=$group;}
if(defined($group) and defined($hash{$user})) {$hash{$user}=$hash{$user}.",
$group";}
}
close(DATA);
foreach $key(reverse sort keys %hash) {
print"$key: $hash{$key}\n";
}
=== Cut ===
Выводит какую-то ахинею. Что-то типа "user1:" вообще нет. Собственно сабж!
Alexander
--- GoldED+/386 1.1.4.7
* Origin: (2:5030/1067.10)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/45153e35801a.html, оценка из 5, голосов 10
|