допустим у нас есть SV *sv; // $val = \\5;<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
тогда:<br>
SvROK(sv) == true<br>
SvIOK(sv) == false<br>
SvROK(SvRV(sv)) == true<br>
SvIOK(SvRV(sv)) == false<br>
SvIOK(SvRV(SvRV(sv))) == true<br>
SvROK(SvRV(SvRV(sv))) == false<br>
Ни раньше, ни сейчас извращаться не надо.<br>
<div><div></div><br></div></blockquote></div><br>c этими макросами-то все ясно, речь-то шла о других, об SvTYPE, а с ним теперь будет<br><br>SVt_IV == SvTYPE(SvRV(sv))) и SVt_IV == SvTYPE(SvRV(SvRV(sv))))<br><br>это приводит к тому что надо switch заменять на if&#39;ы или окружать это ifdef&#39;ами, если мы хотим в switch отделять &quot;ссылку на ссылку&quot; от &quot;ссылки на int&quot;<br>
<br>а замена switch на многострочный if - else if это именно извращение.<br><br>