parse

Aben Siatris aben na webcom.sk
Úterý Září 28 20:24:28 MEST 2004


Dňa Tuesday 28 September 2004 20:16 Aben Siatris napísal:
> Dňa Tuesday 28 September 2004 16:42 Lukas Svoboda napísal:
> > pomoci tohoto zapisu
> > my @keys =(1,2,3);
> > my @values=(5,6,7);
> > my %h
> > @h{@keys} = @values;
> takze podla kluca:
> @h{'test','test2'}=("value1","value2");
> a funguje to.
> najprv sa mi nezdalo to @h, ale je to skutocne tak.
> priznam sa ze toto som este nevidel.
> 
> to uz ale skor:
> while ($text=~s/^(.*?);(.*)\n//){$hash{$1}=$2};
> 
> viem ze funguje nasledovne:
> my @array=("kluc","value");
> my %hash=@array;
> 
> ako teda dostat vstup z $test do pola v tvare kluc,value,kluc,value
> aby som to bol schopny priradit %hash=@array;

o minutu som na to dosiel, takze riesenie je:


my $text=<<"HEADER";
646;sadfpwoef
9994;weopsdfj
334;qwepowr
HEADER

my %hash=($text=~/(.*?);(.*)\n/g);


> 
> 
> btw: spominany problem ma zaujima hlavne ciste teoreticky, nepotrebujem
> pre prakticke riesenie nejakeho problemu. len viem ze sa to musi dat, ale
> neviem ako.
> 
> 
> 
> > 
> > ..apon doufam, uz jsem v perlu dlouho nic nedelal:)
> > 
> > On Tue, 28 Sep 2004 11:26:00 +0200 (MEST), Aben Siatris <aben na webcom.sk> 
> wrote:
> > > 
> > > da sa toto napisat aj krajsie?
> > > 
> > > my $text=<<"HEADER";
> > > 646;sadfpwoef
> > > 9994;weopsdfj
> > > 334;qwepowr
> > > HEADER
> > > 
> > > my %hash;
> > > foreach my $lin(split('\n',$text))
> > > {
> > > my @arr=split(';',$line,2);
> > > $hash{$arr[0]}=$arr[1];
> > > }
> > > 
> > > 
> > 
> > 
> > 
> > -- 
> > Lukas Svoboda
> > 
> 


Další informace o konferenci Perl