🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: tablica hashy

#52263
From: stas53
Date: Tue, 05 Jul 2011 09:19
65 lines
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-mail
References: <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