Perl: преобразование строки в число (там где оно совсем не нужно)
Модератор: Модераторы разделов
-
Obscurus
- Сообщения: 188
Perl: преобразование строки в число
В скрипте из эксель-файла вытягиваются значения ячеек (в текстовом файле с этим, кажется, проще). Они содержат числовой код, но должны обрабатываться как строки, потому что в некоторых есть значения числа с нулём впереди. Он очень важный, и терять его никак нельзя. То есть, вместо строки 050 в переменной оказывается число 50. Есть ли способ это порешить, или перл делает так всегда и со всеми строками?
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: Perl: преобразование строки в число
Perl сделает то, что вы от него потребуете, нужно только правильно потребовать. :)
P. S. В Perl тип скалярных переменных определяется динамически из контекста. Поэтому, если вы хотите, чтобы в переменную было записано строковое значение, а не число, то нужно воспользоваться кавычками или операторами q()/qq().
Присвоение переменной строкового значения
$ perl -e '$a="050"; print "$a\n"'
050P. S. В Perl тип скалярных переменных определяется динамически из контекста. Поэтому, если вы хотите, чтобы в переменную было записано строковое значение, а не число, то нужно воспользоваться кавычками или операторами q()/qq().
-
Obscurus
- Сообщения: 188
Re: Perl: преобразование строки в число
Спасибо за совет, дело оказалось не в самой переменной - просто в глубине спрятался sprintf, который эти нули и ел ))
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64