Perl не видит hex-число в кавычках

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Ilya Evseev
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-06-11 22:43:13

Perl не видит hex-число в кавычках

Непрочитанное сообщение Ilya Evseev » 2009-06-14 20:53:44

Как заставить PERL воспринять в виде числа строку '0xff112233' ?
При попытке распечатать её через printf("%x") или "%d" выводится ноль!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Perl не видит hex-число в кавычках

Непрочитанное сообщение zg » 2009-06-14 21:10:01

Ilya Evseev писал(а):Как заставить PERL воспринять в виде числа строку '0xff112233' ?
какбэ в двойных кавычках нада писать :pardon:

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Perl не видит hex-число в кавычках

Непрочитанное сообщение lerryc » 2009-06-15 1:05:48

zg писал(а):
Ilya Evseev писал(а):Как заставить PERL воспринять в виде числа строку '0xff112233' ?
какбэ в двойных кавычках нада писать :pardon:
или совсем бэз???
насколько я помню, хотя может и склероз подводит, в одинарных или двойных кавычках - это текстовая строка
а раз хочется

Код: Выделить всё

При попытке распечатать её через printf("%x") или "%d" выводится ноль!
то число должно быть как число, либо (с кавычками) печатать как текстовую строку (%s)
машина думать не может, машина должна ехать

Ilya Evseev
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-06-11 22:43:13

Re: Perl не видит hex-число в кавычках

Непрочитанное сообщение Ilya Evseev » 2009-06-15 4:16:57

Поясню вопрос.
У меня парсится строка из вывода команды ifconfig:

Код: Выделить всё

open N, "/sbin/ifconfig $iface_name |";
while(<N>) {
    next unless /\s+inet (\d+\.\d+\.\d+\.\d+) netmask (0x[[:xdigit:]]+) broadcast (\d+\.\d+\.\d+\.\d+)$/;
    my ($ip, $mask, $bcast) = ($1, $2, $3);
}
В $mask помещается "0xfffffff8", но при попытке использовать её в арифметических операциях
или при печати в цифровом формате она воспринимается как 0 (ноль).
:st:

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Perl не видит hex-число в кавычках

Непрочитанное сообщение thefree » 2009-06-15 8:53:26

Код: Выделить всё

open N, "/sbin/ifconfig $iface_name |";
while(<N>) {
    next unless /\s+inet (\d+\.\d+\.\d+\.\d+) netmask (0x[[:xdigit:]]+) broadcast (\d+\.\d+\.\d+\.\d+)$/;
    my ($ip, $mask, $bcast) = ($1, $2, $3);
    printf("%d \n", eval($mask));
}
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Ilya Evseev
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-06-11 22:43:13

Re: Perl не видит hex-число в кавычках

Непрочитанное сообщение Ilya Evseev » 2009-06-15 17:14:04

Точно, eval() рулит. Thanx!