🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #562

Re: odpowiednik tablicy struktur

#562
From: Piotr Piatkowski
Date: Thu, 25 Sep 1997 10:50
46 lines
2097 bytes
Krzysztof Osiecki <krzycho@amba.matrix.com.pl> wrote:

: chciałbym mieć coś na kształt rekordu powiedzmy takiego:

: ( nazwa => "jakiś string"
:   wersja => "1.00a"
:   ok => "y" )

: i mieć tablicę takich rekordów, oraz możliwość dokładania do tej tablicy
: nowych. możliwość sortowania mile widziana. czytam dokumentację i czytam, ale
: nadal nie za bardzo mam wyobrażenie jak to zrobić, więc proszę o poradę.

Poczytaj sobie man perldsc:

     perldsc - Perl Data Structures Cookbook

     There are separate sections on each of the following:
        o arrays of arrays
        o hashes of arrays
        o arrays of hashes
        o hashes of hashes
        o more elaborate constructs

A ogólnie, to czego potrzebujesz będzie wyglądać mniej więcej tak:

$dane = [ { nazwa => "zzz", wersja => "1.00", ok => "y" },
          { nazwa => "yyy", wersja => "1.01", ok => "y" },
          { nazwa => "xxx", wersja => "0.99", ok => "n" }  ];

push @$dane, { nazwa => "aaa", wersja => "2.01", ok => "y" };

print $dane->[1]{nazwa};
print $dane->[0]{wersja};

# Sortowanie po nazwie:

foreach $rekord ( sort { $a->{nazwa} cmp $b->{nazwa} } @$dane ) {
  print join( " - ", ( $rekord->{nazwa}, $rekord->{wersja}, $rekord->{ok} ) );
  print "\n";
}

P.S. Jeżeli nie wiesz nic na temat referencji, to najpierw radzę 
     poczytać man perlref 

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Technical Details
Message-ID: <60dfmh$ppe$1@galaxy.uci.agh.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!agh.edu.pl!not-for-mail
References: <60dc83$pv$7@okapi.ict.pwr.wroc.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!agh.edu.pl!not-for-mail
From: kompas@galaxy.uci.agh.edu.pl (Piotr Piatkowski)
Newsgroups: pl.comp.lang.perl
Subject: Re: odpowiednik tablicy struktur
Date: 25 Sep 1997 12:50:57 +0200
Organization: University of Mining & Metallurgy
Lines: 46
Message-ID: <60dfmh$ppe$1@galaxy.uci.agh.edu.pl>
References: <60dc83$pv$7@okapi.ict.pwr.wroc.pl>
NNTP-Posting-Host: galaxy.uci.agh.edu.pl
Mime-Version: 1.0
X-Newsreader: TIN [UNIX 1.3 unoff BETA 970307; sun4m SunOS 5.5.1]
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit