Article View: pl.comp.lang.perl
Article #52263Re: tablica hashy
From: stas53
Date: Tue, 05 Jul 2011 09:19
Date: Tue, 05 Jul 2011 09:19
65 lines
3479 bytes
3479 bytes
Też bym zalecał postudiowanie struktur PERLowych,
ale w odróżnieniu od wcześniej piszących Kolegów,
daję poniżej kompletną odpowiedź na Twoje pytania.
Taką ma dziś fantazję.
Stanisław Romański
use strict;
use Data::Dumper;
# po pierwsze, prawdopodobnie chciales, zeby identyfikatorem byl
lancuch '001' a nie liczba '1'
# po drugie, nie wiem czemu liczba wplat i ich suma sie nie
zgadzaly ;-(
my %raporty = (
'001' => {
nrRaportu => "001",
nazwaPliku => "0001.txt",
dataRaportu => "20110705",
dataKswiegowania => "20110705",
iloscWplat => "2",
sumaWplat => "102",
wplaty => [
{ nrWplaty => "001", dataWplaty => "20110630", kwota =>
36, },
{ nrWplaty => "002", dataWplaty => "20110630", kwota =>
66, },
],
},
);
print Dumper(\%raporty);
# ja lubie poslugiwac sie referencja do hasha a nie hashem
my $rraporty = \%raporty;
# nowa wplata do raportu '001'
my $nowa_wplata_nrWplaty = '003';
my $nowa_wplata_kwota = 67;
my $nowa_wplata_pola = { nrWplaty => $nowa_wplata_nrWplaty,
dataWplaty => "20110701",
kwota =>
$nowa_wplata_kwota, };
push @{$rraporty->{'001'}->{'wplaty'}}, $nowa_wplata_pola;
$rraporty->{'001'}->{'sumaWplat'} += $nowa_wplata_kwota;
$rraporty->{'001'}->{'iloscWplat'} ++;
# nowy raport
$rraporty->{'002'}->{'wplaty'} = {
nrRaportu => "002",
nazwaPliku => "0002.txt",
dataRaportu => "20110706",
dataKswiegowania => "20110706",
iloscWplat => "2",
sumaWplat => "46",
wplaty => [
{ nrWplaty => "001", dataWplaty => "20110630", kwota =>
22, },
{ nrWplaty => "002", dataWplaty => "20110630", kwota =>
24, },
],
};
print Dumper($rraporty);
Technical Details
Message-ID:
<cc558e97-8acf-4bc7-b8f4-38613b2ef6f4@m10g2000yqd.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!m10g2000yqd.googlegroups.com!not-for-mailReferences:
<iut4oo$773$1@news.onet.pl> <20110704194629.6b8b4567@polsl.pl> <iuugbb$uhm$1@solani.org>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!m10g2000yqd.googlegroups.com!not-for-mail From: stas53 <stas53@gazeta.pl> Newsgroups: pl.comp.lang.perl Subject: Re: tablica hashy Date: Tue, 5 Jul 2011 02:19:49 -0700 (PDT) Organization: http://groups.google.com Lines: 69 Message-ID: <cc558e97-8acf-4bc7-b8f4-38613b2ef6f4@m10g2000yqd.googlegroups.com> References: <iut4oo$773$1@news.onet.pl> <20110704194629.6b8b4567@polsl.pl> <iuugbb$uhm$1@solani.org> NNTP-Posting-Host: 83.6.183.64 Mime-Version: 1.0 X-Trace: posting.google.com 1309857589 27433 127.0.0.1 (5 Jul 2011 09:19:49 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 5 Jul 2011 09:19:49 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: m10g2000yqd.googlegroups.com; posting-host=83.6.183.64; posting-account=Hi6fFQoAAAAROXwHY1GBBYvlZpboIsvY User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: ARLEUHNKC X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EasyBits GO v1.0; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit