Thread interesanter nebeneffekt von for (9 answers)
Opened by lichtkind at 2009-08-05 12:34

sid burn
 2009-08-05 12:42
#123877 #123877
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Das hat nichts mit der "for" Schleife zu tun. Du kannst bei Perl generell bei Zahlen einen Unterstrich hinzufügen nach drei Ziffern.

Code: (dl )
1
2
perl -wle 'print 1_000'
>1000


Das ist das gleiche wie mit einem vorangestellen "0" das er es dann als oktal interpretiert.

Code: (dl )
1
2
perl -wle 'print 0123'
>83


oder wenn du "0b" davor schreibst es als binärzahl gesehen wird.

Code: (dl )
1
2
perl -wle 'print 0b010101'
>21


Müsste sogar im "Einführung in Perl" Buch stehen.


Ansonsten werfen "0 + '1_000'" deswegen fehler weil diese Umwandlung zur Kompilierzeit geschieht. Und mit Hochstrich und Doppelten Hochstrich ist es eben ein String und wird nicht mehr als Zahl interpretiert. Intern wandelt Perl alle solch definierte Zahlen dann wieder zur Basis 10 zur Kompilierzeit um.

EDIT:
Alle Möglichen um zahlen zu definieren findest du hier:
http://perldoc.perl.org/perldata.html#Scalar-value...

EDIT2:
Code: (dl )
1
2
3
4
5
sidburn@sid:~$ perl -MO=Deparse -wle 'print 1_000, 0b010101'
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
print 1000, 21;
-e syntax OK

Last edited: 2009-08-05 12:51:21 +0200 (CEST)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread interesanter nebeneffekt von for