2011/2/13 Ivan Petrov <[email protected]>: > >> > то есть теперь чтобы вычислить в XS что это ссылка на ссылку надо >> > пройти по >> > всем 15 вариантам SVt_*, я правильно понимаю? >> Нет, не правильно. >> Посмотрите как макрос SvROK определен ;-) >> > эмм а какая разница как он определен? в документации написано "чтобы > определить является ли данный скаляр ссылкой, используйте SvROK, а чтобы > определить на какой тип ссылается данная ссылка используйте > SvTYPE(SvRV(SV*))" > > поскольку "ссылку на ссылку" приравняли к "ссылке на IV", то чтобы отделить > "ссылку на скаляр с интом" от "ссылки на ссылку на массив" теперь надо > как-то извращаться. причем непонятно как это сделать обратно совместимо допустим у нас есть SV *sv; // $val = \\5; тогда: SvROK(sv) == true SvIOK(sv) == false SvROK(SvRV(sv)) == true SvIOK(SvRV(sv)) == false SvIOK(SvRV(SvRV(sv))) == true SvROK(SvRV(SvRV(sv))) == false Ни раньше, ни сейчас извращаться не надо.
> > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > > -- Vladimir Timofeev <[email protected]> -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
