Thread View: pl.comp.lang.perl
7 messages
7 total messages
Started by Sl
Wed, 27 May 2009 09:53
Pytanko z hash...
Author: Sl
Date: Wed, 27 May 2009 09:53
Date: Wed, 27 May 2009 09:53
41 lines
1481 bytes
1481 bytes
Czesc!
Mam w skrypcie coś takiego:
my %tmp = map { /(\S+$)/,$_ } grep {/^\d+/} @grups;
i tworzy mi pięknego hasha:
$VAR1 = {
'A' => 'ZZZ',
'B' => 'XXX',
'C' => 'OOO',
'D' => 'QQQ'
};
Pytano jak przerobić linię w skrypcie aby otrzymać:
$VAR1 = {
'A' => {
'opis' => 'ZZZ',
},
'B' => {
'opis' => 'XXX',
},
'C' => {
'opis' => 'OOO',
},
'D' => {
'opis' => 'QQQ',
}
};
Czyli chciałbym zrobić zagnieżdżonego hasha.
Z góry dzięki za pomoc bo utknąłem.
Teoretycznie można by przebudować hasha ale ciekawi mnie czy można od
razu zrobić to tak jak chcę przez za pomocą tej linijki.
Pozdr.
S.
Re: Pytanko z hash...
Author: Sl
Date: Wed, 27 May 2009 10:17
Date: Wed, 27 May 2009 10:17
8 lines
954 bytes
954 bytes
Mam:
my %tmp = map { /(\S+$)/,{opis=>$_} } grep {/^\d+/} @grups;
Sorry za zaśmiecanie...
Pozdr.
S.
Re: Pytanko z hash...
Author: Kacper Perschke
Date: Wed, 27 May 2009 10:27
Date: Wed, 27 May 2009 10:27
28 lines
1559 bytes
1559 bytes
Dnia 27.05.2009 Sl@eR <future_witch_off_spam@nospam.com> napisało:
> [...]
> my %tmp = map { /(\S+$)/,$_ } grep {/^\d+/} @grups;
> [...]
> \%tmp = {
> 'A' => 'ZZZ',
> 'B' => 'XXX',
> 'C' => 'OOO',
> 'D' => 'QQQ'
> };
Tu coś brzydko pachnie.
> [...]
> Czyli chciałbym zrobić zagnieżdżonego hasha.
my %tmp = map { /(\S+$)/ => { 'opis' => $_ } } grep { /^\d+/ } @grups;
> Z góry dzięki za pomoc bo utknąłem.
Proszę, ale zapachu to nadal nie usunęło.
> Teoretycznie można by przebudować hasha ale ciekawi mnie czy można od
> razu zrobić to tak jak chcę przez za pomocą tej linijki.
Trzeba poczytać perldoc -f map
KAcper
Re: Pytanko z hash...
Author: Sl
Date: Wed, 27 May 2009 10:52
Date: Wed, 27 May 2009 10:52
26 lines
1524 bytes
1524 bytes
Kacper Perschke pisze:
> Dnia 27.05.2009 Sl@eR <future_witch_off_spam@nospam.com> napisało:
>> [...]
>> my %tmp = map { /(\S+$)/,$_ } grep {/^\d+/} @grups;
>> [...]
>> \%tmp = {
>> 'A' => 'ZZZ',
>> 'B' => 'XXX',
>> 'C' => 'OOO',
>> 'D' => 'QQQ'
>> };
>
> Tu coś brzydko pachnie.
Zrobiłem tak:
my %tmp = map { /(\S+$)/,{opis=>$_} } grep {/^\d+/} @grups;
Wartość w nawiasie to ma być klucz hasha (wynik /(\S+$)/) a wartość to
{opis=>$_}. Tak abym mógł tego hasha w dalszej części skryptu rozbudowywać.
Zla konstrukcja? Chciałem jednolinijkowca zrobic ;)
Pozdr.
S.
Re: Pytanko z hash...
Author: Stachu 'Dozzie' K.
Date: Wed, 27 May 2009 11:15
Date: Wed, 27 May 2009 11:15
24 lines
1551 bytes
1551 bytes
On 27.05.2009, Sl@eR wrote:
> Kacper Perschke pisze:
>> Dnia 27.05.2009 Sl@eR <future_witch_off_spam@nospam.com> napisało:
>>> [...]
>>> my %tmp = map { /(\S+$)/,$_ } grep {/^\d+/} @grups;
>>> [...]
>>> \%tmp = {
>>> 'A' => 'ZZZ',
>>> 'B' => 'XXX',
>>> 'C' => 'OOO',
>>> 'D' => 'QQQ'
>>> };
>>
>> Tu coś brzydko pachnie.
^^^^^^^^^^^^^^^^^^^^^^
> Zrobiłem tak:
>
> my %tmp = map { /(\S+$)/,{opis=>$_} } grep {/^\d+/} @grups;
Podałeś dane nie tylko nieprawdziwe, ale wręcz rażąco niezgodne
z działaniem przykładowego kodu, jeśli dobrze zrozumiałem Kacpra.
--
Stanislaw Klekot
Re: Pytanko z hash...
Author: Sl
Date: Wed, 27 May 2009 11:32
Date: Wed, 27 May 2009 11:32
10 lines
1382 bytes
1382 bytes
Stachu 'Dozzie' K. pisze: > Podałeś dane nie tylko nieprawdziwe, ale wręcz rażąco niezgodne > z działaniem przykładowego kodu, jeśli dobrze zrozumiałem Kacpra. A to fakt. Na przyszłość się poprawię. Dzięki za odzew. Pozdr. S.
Re: Pytanko z hash...
Author: Kacper Perschke
Date: Wed, 27 May 2009 12:00
Date: Wed, 27 May 2009 12:00
10 lines
1290 bytes
1290 bytes
Dnia 27.05.2009 Sl@eR <future_witch_off_spam@nospam.com> napisał: >> Podałeś dane nie tylko nieprawdziwe, ale wręcz rażąco niezgodne >> z działaniem przykładowego kodu, jeśli dobrze zrozumiałem Kacpra. > A to fakt. Na przyszłość się poprawię. > Dzięki za odzew. Powodzenia. EOT. KAcper
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