Schrift
[thread]8849[/thread]

Array aus String erzeugen?



<< >> 9 Einträge, 1 Seite
pktm
 2007-03-17 22:56
#75127 #75127
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe da den String my $s = "[1, [2, 3, 4, [5, 6]]]";.
Wie kann ich den in ein Array umwandeln?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
bloonix
 2007-03-17 23:10
#75128 #75128
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
use strict;
use warnings;
use Safe;
use Data::Dumper;

my $s = "[1, [2, 3, 4, [5, 6]]]";
my $safe = new Safe;
my $obj  = $safe->reval($s);

die $@ if $@;

print Dumper($obj);


$VAR1 = [
         1,
         [
           2,
           3,
           4,
           [
             5,
             6
           ]
         ]
       ];


Weitere Infos erhälst du hier: CPAN:Safe und warum die
Evaluierung mit Safe gemacht werden sollte.\n\n

<!--EDIT|opi|1174167471-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
bloonix
 2007-03-17 23:16
#75129 #75129
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Ähm... darf ich noch Fragen, wofür du das brauchst? Ich hab da so ne
Ahnung und vielleicht ne bessere Lösung für dich... ;)
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
pktm
 2007-03-17 23:21
#75130 #75130
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Momentan speichere ich Syntaxbäume von Sätzen, welche ich vorher mühevoll aus XML-Daten in Arrayreferenzen geparst habe in einer Datenbank ab, weil ich die Sätze genau in durch diese Form mittels regulärer Ausdrücke durchsuchen kann. Und weil sie schon in der DB stehen wollte ich sie auch wieder von da benutzen anstatt den Parser nochmal anzuwerfen.
Wieso?
http://www.intergastro-service.de (mein erstes CMS :) )
bloonix
 2007-03-17 23:24
#75131 #75131
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Okay, wenn du die Datensätze mit einer Regex durchsuchen und gleich-
zeitig in einem Skript evaluieren möchtest, dann ist mein Gedanke nichts
für dich... ich hatte daran gedacht, dass du die Datensätze in Binärform
mit Storable in die Datenbank legst.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
pktm
 2007-03-17 23:26
#75132 #75132
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ja, das wäre sinnvoll, wenn ich die Daten nur irgendwo zwischenspeichern will. Da bietet sich doch CPAN:Data::Serializer an.
Aber ich muss den Kram ja auch noch lesen können.
http://www.intergastro-service.de (mein erstes CMS :) )
bloonix
 2007-03-17 23:35
#75133 #75133
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Du machst also sowas:

select foo from bar where foo like '%$search%';

und die zurückgegebenen Zeilen möchtest du evaluieren?

while (my $row = $sth->fetchrow_hashref) {
my $obj = $safe->reval($row->{foo});
# do something with $obj
}
\n\n

<!--EDIT|opi|1174167425-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
pktm
 2007-03-17 23:49
#75134 #75134
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ja.

Edit: wobei die Information, welcher Satz das jetzt ist wichtiger ist, als die Datenstruktur, auf der ich die Suche durchgeführt habe.\n\n

<!--EDIT|pktm|1174168235-->
http://www.intergastro-service.de (mein erstes CMS :) )
betterworld
 2007-03-18 07:52
#75135 #75135
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
use strict;
use warnings;

$_ = '[1, [2, 3, 4, [5, 6]]]';
my @a;

sub e{my($r)=@_;{s/^\]//&&last;s/^\[//&&e($r->[@$r]=[])||s/^, //||s/^(\d+)//&&push@$r,$1and redo}}e\@a;

use Data::Dumper;
print (Dumper(\@a));
\n\n

<!--EDIT|betterworld|1174197218-->
<< >> 9 Einträge, 1 Seite



View all threads created 2007-03-17 22:56.