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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     14 Nov 2003  23:23:17
 To : tsypatsypa%forest.pu.ru@f266.n5030.
 Subject : Re: will not stay shared
 -------------------------------------------------------------------------------- 
 
 Хмутро.
 
 tfpr> Внизу тестовый скриптик. В оригинале b() вызывается рекурсивно.
 tfpr> b() определена внутри а() для того, чтобы некоторые переменные держать
 tfpr> снаружи b(),потому что передавать параметрами весь необходимый зоопарк
 tfpr> лень, но не делать их глобальными. В a() в начале ещё некотороая 
 tfpr> инициализация должна происходить.
 
 tfpr> Всё работает, но ругается:
 tfpr> Variable "$a" will not stay shared at ./t.pl line 10.
 
 tfpr> Как удовлетворить транслятор?
 
 tfpr> И.
 tfpr> #!/usr/bin/perl
 
 tfpr> use strict;
 tfpr> use warnings;
 
 tfpr> sub a () {
 tfpr>         my $a = 1;
 
 tfpr>         sub b () {
 tfpr>                 $a++;
 tfpr>         }
 
 tfpr>         b();
 tfpr>         b();
 tfpr>         $a;
 tfpr> }
 
 tfpr> print a(), "\n";;
 
 Могут быть засады с долговременным выполнением этого безобразия, когда функции
 периодически переопределяются. Определение b() заменить на
 
 my $sub_b = sub { $a++ };
 
 а вызовы, соответственно, на
 
 $sub_b->();
 
 И по возможности избегать имен переменных $a и $b...
 
 -- 
 Artem Chuprina
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757
 --- ifmail v.2.15dev5.1
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 will not stay shared   tsypa@forest.pu.ru   14 Nov 2003 20:41:40 
 Re: will not stay shared   Artem Chuprina   14 Nov 2003 23:23:17 
 Re: will not stay shared   tsypa@forest.pu.ru   15 Nov 2003 02:33:51 
 Re: will not stay shared   Artem Chuprina   15 Nov 2003 19:18:26 
 Re: will not stay shared   Andrew Shitov   17 Nov 2003 17:08:18 
 Re: will not stay shared   Sergey Skvortsov   15 Nov 2003 19:15:55 
 Re: will not stay shared   Andrew Shitov   17 Nov 2003 16:59:57 
Архивное /ru.perl/1147799513b6f.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional