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

Leerzeichen in qw-eintrag

Leser: 2


<< >> 8 Einträge, 1 Seite
KurtZ
 2008-04-09 20:37
#108177 #108177
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
Hi

hab gerade ein Luxusproblemchen (das man IMHO nicht lösen kann :-)

Ich habe eine längere Liste von Begriffen in qw () eingepastet, doch eines besteht aus 2 Wörtern nämlich "Betrag EUR".

Gibts in qw eine Möglichkeit ein Whitespace zu escapen?
\x20 oder \s haben nicht weitergeholfen, ist ja auch non-interpolating.

Habe bereits ein Workaround mit split, würd mich jetzt aber trotzdem interessieren, obs ginge.

Bye
Kurt
TMTOWTDYOG (there's more than one way to dig your own grave)
GwenDragon
 2008-04-09 20:47
#108178 #108178
User since
2005-01-17
14746 Artikel
Admin1
[Homepage]
user image
Ich denke es ist so: qw teilt nach Worten auf und \x20 (Space) ist eine Wortgrenze. Wortgrenzen gehören eben nicht zu Wörtern.
sid burn
 2008-04-09 20:58
#108180 #108180
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Du musst ja nicht nur qw() nutzen.

Code (perl): (dl )
1
2
my @array = ( qw(hallo welt wie geht es dir), 'Betrag EUR', qw(und wieder was) );
print join("\n", @array);


Quote
\x20 oder \s haben nicht weitergeholfen, ist ja auch non-interpolating.

\s würde auch interpoliert keinen Sinn ergeben. Erstens gibt es das nur bei Regexen. Und zweitens ist es eine zeichenklasse das für space, non-breakable-space, tabulator, linefeed, careage return, ... steht. Was sollte er deiner Meinung nach nehmen wenn du \s schreibst? ;)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
KurtZ
 2008-04-09 23:59
#108190 #108190
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
sid burn+2008-04-09 18:58:56--
Code (perl): (dl )
1
2
my @array = ( qw(hallo welt wie geht es dir), 'Betrag EUR', qw(und wieder was) );
print join("\n", @array);


hmm, danke... sieht zwar unelegant aus,ist aber wartbarer als mein split-ansatz. Wozu in der Ferne schweifen... :)
TMTOWTDYOG (there's more than one way to dig your own grave)
betterworld
 2008-04-10 04:50
#108197 #108197
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Sieht auch in meinen Augen etwas unelegant aus. Ich wuerde es dann gleich ganz auf die harte Tour machen:
Code: (dl )
1
2
3
4
5
6
my @array = (
'hallo',
'welt',
'Betrag EUR',
'blah',
);


qw steht afaik fuer "quote words", und "Betrag EUR" ist leider kein Wort, daher kann man es nicht in qw schreiben.
sid burn
 2008-04-10 14:26
#108211 #108211
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
betterworld+2008-04-10 02:50:51--
qw steht afaik fuer "quote words", und "Betrag EUR" ist leider kein Wort, daher kann man es nicht in qw schreiben.

Oder für "Quoted by Whitespace". ;)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
KurtZ
 2008-04-10 17:17
#108216 #108216
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
betterworld+2008-04-10 02:50:51--
Sieht auch in meinen Augen etwas unelegant aus. Ich wuerde es dann gleich ganz auf die harte Tour machen:


hmm wenn ich schon ganz "hart" umbreche gäbs noch ne c&p freundlichere Variante :-)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
my @array=split /\s*\n\s*/, <<'EOL';
hallo
wieviel
Betrag Euro
kostet
die welt
...
EOL

print join "|",@array;
TMTOWTDYOG (there's more than one way to dig your own grave)
betterworld
 2008-04-10 17:25
#108218 #108218
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Kannst Du auch machen. Allerdings wird es dann zur Laufzeit geparst und nicht zur Kompilierzeit.
<< >> 8 Einträge, 1 Seite



View all threads created 2008-04-09 20:37.