Schrift
[thread]7006[/thread]

interpolationsproblem



<< >> 4 Einträge, 1 Seite
Gast Gast
 2005-05-19 19:40
#55079 #55079
hi,
Code: (dl )
1
2
3
my $var=5;
my $c = "hello $var - 1";
print $c;


Was ich gern hätte wäre:
hello 4

Hat jemand ne Idee?
Strat
 2005-05-19 19:55
#55080 #55080
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Innerhalb von Anfuehrungszeichen kann man (normalerweise) keinen code ausfuehren, du musst also die rechenoperation ausserhalb der anfuehrungszeichen machen, z.B.
Code: (dl )
my $c = "hello " . ($var - 1);

oder:
Code: (dl )
my $c = sprintf("hello %d", $var-1);
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Gast Gast
 2005-05-19 20:03
#55081 #55081
Naja, gehen tut's schon. Allerdings würd' ich mal sagen, es ist eine schlechte Idee:
Code: (dl )
1
2
3
4
5
6
phaylon@gaia:~ # perl -Mwarnings -Mstrict
my $a = 12;
my $b = "test ${\($a - 9)} foobar\n";
print $b;^D
test 3 foobar
phaylon@gaia:~ #
ptk
 2005-05-19 20:58
#55082 #55082
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich bevorzuge die @{[...]}-Variante, da kommt man mit weniger Syntax aus:
Code: (dl )
my $b = "test @{[ $a - 9 ]} foobar\n";
<< >> 4 Einträge, 1 Seite



View all threads created 2005-05-19 19:40.