Schrift
[thread]8188[/thread]

Perl string 0 abgeschnitten



<< >> 3 Einträge, 1 Seite
Gast Gast
 2006-07-21 14:16
#68305 #68305
Hallo,

ich bin ziemlicher Perl Neuling und habe folgendes Problem. Ich ordne einer variablen einen String mit führender 0 zu

$str = "01";

Danach füge ich $str einem Array hinzu und schreibe diesen später rekursiv in eine Datei aus. Es wird nun allerdings nur 1 und nicht 01 in die Datei geschrieben. Es sieht so aus als würde die 0 irgendwo "weggeschnitten".

Muss ich die Zeichenketten mit führender 0 anders übergeben?

Besten Dank

Julio
renee
 2006-07-21 14:32
#68306 #68306
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Perl kennt keinen Unterschied zwischen Strings und Zahlen. Eine "konvertierung" findet nach Kontext statt. Machst Du noch was mit der Zahl?? Weil die 0 eigentlich erhalten bleibt:
Code: (dl )
1
2
~/entwicklung 111> perl -le 'my $var = "01"; my @array = (); push(@array,$var); print $_ for(@array);'
01


erst wenn man noch mit dem Wert rechnet, geht die 0 verloren...

Code: (dl )
1
2
~/entwicklung 113> perl -le 'my $var = "01"; $var += 8; my @array = (); push(@array,$var); print $_ for(@array);'
9
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
docsnyder
 2006-07-21 15:06
#68307 #68307
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@Julio

Ich vermute mal, Du schreibst die Zahl mit printf() und dem Format %d in die Datei. Dann wird nämlich der Inhalt Deiner Variable als Zahl behandelt und die führende Null abgeschnitten. Wenn das die Ursache ist, dann solltest Du statt %d besser %s verwenden, denn dann wird der Inhalt der Variable als String behandelt und die Null bleibt dran.

Gruß, Doc\n\n

<!--EDIT|docsnyder|1153480015-->
<< >> 3 Einträge, 1 Seite



View all threads created 2006-07-21 14:16.