Article View: pl.comp.lang.perl
Article #52264Re: tablica hashy
From: stas53
Date: Tue, 05 Jul 2011 14:32
Date: Tue, 05 Jul 2011 14:32
71 lines
4121 bytes
4121 bytes
On 5 Lip, 11:19, stas53 <sta...@gazeta.pl> wrote:
> 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);
Z poprawką, że linijka za '# nowy raport ' powinna być
$rraporty->{'002'} = {
;-) S.R.
Technical Details
Message-ID:
<ece75f8c-23a6-4342-b07a-0ac2c579242a@k16g2000yqm.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!k16g2000yqm.googlegroups.com!not-for-mailReferences:
<iut4oo$773$1@news.onet.pl> <20110704194629.6b8b4567@polsl.pl> <iuugbb$uhm$1@solani.org> <cc558e97-8acf-4bc7-b8f4-38613b2ef6f4@m10g2000yqd.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!k16g2000yqm.googlegroups.com!not-for-mail From: stas53 <stas53@gazeta.pl> Newsgroups: pl.comp.lang.perl Subject: Re: tablica hashy Date: Tue, 5 Jul 2011 07:32:03 -0700 (PDT) Organization: http://groups.google.com Lines: 80 Message-ID: <ece75f8c-23a6-4342-b07a-0ac2c579242a@k16g2000yqm.googlegroups.com> References: <iut4oo$773$1@news.onet.pl> <20110704194629.6b8b4567@polsl.pl> <iuugbb$uhm$1@solani.org> <cc558e97-8acf-4bc7-b8f4-38613b2ef6f4@m10g2000yqd.googlegroups.com> NNTP-Posting-Host: 83.6.99.144 Mime-Version: 1.0 X-Trace: posting.google.com 1309876765 26018 127.0.0.1 (5 Jul 2011 14:39:25 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 5 Jul 2011 14:39:25 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: k16g2000yqm.googlegroups.com; posting-host=83.6.99.144; 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