Portál AbcLinuxu, 12. května 2025 08:41

Dotaz: Jak na vytvoření Hashe z textu v Perlu

24.7.2013 09:32 qweerty | skóre: 1
Jak na vytvoření Hashe z textu v Perlu
Přečteno: 278×
Odpovědět | Admin
Ahoj, mám takovýto text

klic=>"hodnota",klic2=>{klic3=>"hodnota",klic4=>{klic5=>"hodnota"}}

a potřebuji ho v Perlu dostat do hashe o stejné struktuře. Jde to udělat i jinak než přes regulární výrazy?

Potřeboval bych trochu popostrčit.

Řešení dotazu:


Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (qweerty (tazatel))
wamba avatar 24.7.2013 12:45 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Jak na vytvoření Hashe z textu v Perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
jedna z možností (a pravděpodobně ta špatná je použít eval)
use 5.010;
use strict;
use warnings;
use Data::Dumper qw{Dumper};
my $text =
  'klic=>"hodnota",klic2=>{klic3=>"hodnota",klic4=>{klic5=>"hodnota"}}';
my $hash = { eval($text) };
say Dumper($hash);
pak záleží co chcete jestli ukládat a nahrávat hash-e, pak použít třeba moduly Storable, FreezeThaw popř. pro JSON,YAML

nebo použít package, což se mi zdá nejlepší (ale záleží co řešíte) např.
package Data_na_zpracovani;
use 5.010;
use strict;
use warnings;

our $VERSION = 0.001;

my $hash = {
    klic  => 'hodnota',
    klic2 => { klic3 => 'hodnota', klic4 => { klic5 => 'hodnota' } }
};
sub data { return $hash }
1;
a pak
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
use Data_na_zpracovani;
use Data::Dumper qw{Dumper};

our $VERSION = 0.001;

say Dumper( Data_na_zpracovani::data() );
a nebo naopak ze souborem z daty volat knihovnu na zpracování, což by asi dávalo více smyslu, (ale opět závisí na tom co řešíte a preferenci)
This would have been so hard to fix when you don't know that there is in fact an easy fix.
24.7.2013 13:46 qweerty | skóre: 1
Rozbalit Rozbalit vše Re: Jak na vytvoření Hashe z textu v Perlu
Použití eval dělá to co potřebuji, a je mnohem lehčí na práci než celý zápis rozložit a znovu složit pomocí regexp, což je moje původní řešení.

I když fce eval může udělat bezpečnostní díru.

Děkuji

25.7.2013 11:24 koloron
Rozbalit Rozbalit vše Re: Jak na vytvoření Hashe z textu v Perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
4 892 kusů ozářené haše...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.