Article View: pl.comp.lang.perl
Article #562Re: odpowiednik tablicy struktur
From: Piotr Piatkowski
Date: Thu, 25 Sep 1997 10:50
Date: Thu, 25 Sep 1997 10:50
46 lines
2097 bytes
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-mailReferences:
<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