Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5795[/thread]

unpack



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
jan10001
 2003-10-03 20:06
#60405 #60405
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Irgendwie werde ich ich nicht ganz fündig.
Also ich habe einen Skalar $test mit folgenden Inhalt SeiteX, wobei X für eine beliebigstellige Zahl steht. Wie muß ich nun unpack definieren, wenn ich nicht weiß wieviele Stellen X hat? (Immerhin kann es ja Seite1 sein oder auch Seite506.) Gibt es dafür bei unpack einen Syntax oder muß ich erst die Stringlänge ermitteln und dann unpack einsetzen?
DS
 2003-10-03 20:24
#60406 #60406
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Für was brauchst du da unpack???
Ishka
 2003-10-03 20:28
#60407 #60407
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
unless($test=~m#Seite([0-9]+)#){print 'Inhalt von $test ist fehlerhaft'}
else{print "Seitenzahl ist $1"}
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
jan10001
 2003-10-03 20:40
#60408 #60408
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Quote
Für was brauchst du da unpack???
Um Seite und X von einander zu trennen. Das ganze brauche ich für ne Fehlerprüfung, dabei wird geprüft ob der User auch wirklich z.B. Seite10 eingibt oder sonstwas und ob es überhaupt ne Seite10 gibt.

Dank an Ishka, das war genau was ich brauchte!
DS
 2003-10-03 20:53
#60409 #60409
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
[quote=Ishka,03.10.2003, 18:28]unless($test=~m#Seite([0-9]+)#){print 'Inhalt von $test ist fehlerhaft'}
else{print "Seitenzahl ist $1"}[/quote]
Lieber $test =~ m/^Seite(\d+)$/, oder ned? (\d oder [0-9] ist Geschmackssache, nicht aber ^ und $)
Ishka
 2003-10-03 20:53
#60410 #60410
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
btw: ich hab sowohl pack, wie auch unpack noch nie verwendet - Reguläre ausdrücke sind da viel zu praktisch ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
jan10001
 2003-10-03 21:07
#60411 #60411
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Eigentlich hatte ich mich da nach Strat der auf Unpack schwört.
jan10001
 2003-10-03 21:24
#60412 #60412
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
($test=~m#Seite([0-9]+)
Schließt das eigentlich auch Groß- und Kleinschreibung mit ein? (Seite könnte ja auch kleingeschrieben werden.)
DS
 2003-10-03 21:35
#60413 #60413
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
[quote=jan10001,03.10.2003, 19:24]
Code: (dl )
($test=~m#Seite([0-9]+)
Schließt das eigentlich auch Groß- und Kleinschreibung mit ein? (Seite könnte ja auch kleingeschrieben werden.)[/quote]
Dann einfach ein i an den Regex anhängen: $test =~ m/^Seite(\d+)$/i
Strat
 2003-10-03 22:35
#60414 #60414
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
unpack funktioniert nur bei fixen laengen (ok, mit ausnahme der letzten "spalte"), nicht jedoch bei variablen spalten... da du eine variable spaltenbreite hast, wird also unpack nicht funktionieren...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2003-10-03 20:06.