Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 perlembed   val khokhlov   17 Apr 2002 14:15:13 
 Re: perlembed   Andrey Sapozhnikov   18 Apr 2002 18:38:47 
Архивное /ru.perl/5284e9bcb695.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional