|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 18 Apr 2002 18:38:47 To : val khokhlov Subject : Re: perlembed -------------------------------------------------------------------------------- val khokhlov wrote: > 1) как сделать аналог перлового кода: *TCP = \6 > сейчас я делаю это через [perl_]eval_pv(), но это же некрасиво (я думаю ;) > должен же быть какой-то вариант сделать такую вещь через perl api Конечно. SV* tcp = get_sv("TCP", TRUE); sv_setiv(tcp, 6); SvREADONLY_on(tcp); > 2) аналогично, только алиас для элемента массива: *A = \$arr[1], > чтобы $A и $arr[1] синхронно могли изменяться Hесколько посложнее, но навскидку: GV* a = gv_fetchpv("A", TRUE, SVt_PV); AV* arr = get_av("arr", TRUE); SV** arr1 = av_fetch(arr, 1, TRUE); SvREFCNT_dec(GvSV(a)); GvSV(a) = *arr1; SvREFCNT_inc(*arr1); > 3) если у меня в сишной проге есть файлы, открытые fopen(), могу ли я в перле > их использовать (сделать typeglob)? если нет, то, видимо, придется либо > работать через хэндлы, либо писать функцию на си и подключать через xs_init См. PerlIO_importFILE и PerlIO_fdopen в perldoc perlapio Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/5284e9bcb695.html, оценка из 5, голосов 10
|