Thread View: pl.comp.lang.perl
5 messages
5 total messages
Started by foxman
Mon, 04 Jul 2011 19:36
tablica hashy
Author: foxman
Date: Mon, 04 Jul 2011 19:36
Date: Mon, 04 Jul 2011 19:36
27 lines
1350 bytes
1350 bytes
Witam,
Mam następującego hash-a
%raporty = (
001 => {
nrRaportu => "001",
nazwaPliku => "0001.txt",
dataRaportu => "20110705",
dataKswiegowania => "20110705",
iloscWplat => "5",
sumaWplat => "88",
wplaty => [
{ nrWplaty => "001", dataWplaty => "20110630", kwota =>
36, },
{ nrWplaty => "002", dataWplaty => "20110630", kwota => 66, },
],
},
);
jak powinno wyglądać poprawne dodanie kolejnego raportu do hasha oraz
wplatę?
--
Pozdrawiam
Foxman
Re: tablica hashy
Author: Adam Osuchowski
Date: Mon, 04 Jul 2011 19:46
Date: Mon, 04 Jul 2011 19:46
6 lines
965 bytes
965 bytes
foxman wrote: > jak powinno wyglądać poprawne dodanie kolejnego raportu do hasha oraz > wplatę? Pytasz, jak konstruować zagnieżdżone struktury danych w Perlu? Jeśli tak to najlepiej będzie jak przeczytasz manual perldsc.
Re: tablica hashy
Author: Stachu 'Dozzie' K.
Date: Tue, 05 Jul 2011 08:00
Date: Tue, 05 Jul 2011 08:00
14 lines
1656 bytes
1656 bytes
On 2011-07-04, Adam Osuchowski <someone@somewhere.com> wrote: > foxman wrote: >> jak powinno wyglądać poprawne dodanie kolejnego raportu do hasha oraz >> wplatę? > > Pytasz, jak konstruować zagnieżdżone struktury danych w Perlu? > Jeśli tak to najlepiej będzie jak przeczytasz manual perldsc. Dodaj jeszcze perllol do porady. Akurat o rekursywnych strukturach danych jest chyba dość sporo w dokumentacji dystrybucyjnej. -- Secunia non olet. Stanislaw Klekot
Re: tablica hashy
Author: 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);
Re: tablica hashy
Author: 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.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads