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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Konstantin Tokar                     2:5020/400     23 Jun 2002  21:05:03
 To : Ildar
 Subject : Re: Странности с переменными
 -------------------------------------------------------------------------------- 
 
 Ildar wrote:
 
 > 
 > привет,
 > 
 > 1. есть скрипт test.pl:
 > #!/usr/bin/perl
 > use StTest;
 > 
 > print("Before f1\n");
 > StTest::f1();
 > print("Before f2\n");
 > StTest::f2();
 > 
 > 2. есть модуль StTest.pm:
 > package StTest;
 
 Тут надо вставить 
 use strict;
 
 тогда ты получил бы всякие предупреждения.
 
 > 
 > require Exporter;
 > @ISA = qw(Exporter);
 > @EXPORT = qw( );
 
 Эти три строки у тебя ничего не делают и не нужны
 
 > 
 > my $var = '';
 
 попробуй объявить $var как глобальную переменную
 
 use vars qw($var);
 BEGIN{
   $var=''; #Это в общем не очень нужно
 }
 
 > 
 > sub f2
 > {
 >     print "var = $var\n";
 > };
 > 
 > sub f1
 > {
 >     $var = "value";
 >     print "var = $var\n";
 > };
 > 
 > 1;
 > 
 > Все нормально работает:
 > Before f1
 > var = value
 > Before f2
 > var = value
 > 
 > Hо при этом происходит следующая странность - если описание переменной
 > $var (my $var = '') опустить ниже (sub f2), то перестает работать:
 > Before f1
 > var = value
 > Before f2
 > var =
 > 
 > Я не могу понять - это нормальное поведение или какой-либо баг.
 
 Баг - не использовать use strict; все остальное - правильно. Багов в
 перле немного, и выходят они на поверхность не в таких простых случаях.
 
 > Если это нормальное поведение, то можно от него избавиться,
 > т.е. сделать так, чтобы $var был виден в независимости от
 > относительного положения касательно f2() ?
 
 объявить как use vars qw($var);
 
 И ИСПОЛЬЗОВАТЬ use strict; во всех даже самых простых программах!!!
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Странности с переменными   Ildar   23 Jun 2002 20:28:26 
 Re: Странности с переменными   Konstantin Tokar   23 Jun 2002 21:05:03 
 Re: Странности с переменным и   Andrey Sapozhnikov   24 Jun 2002 13:42:08 
 Re: Странности с пере менным и   Konstantin Tokar   24 Jun 2002 16:18:03 
 Re: Странности с переменным и   Andrey Sapozhnikov   24 Jun 2002 22:13:25 
 Re: Странности с пере менным и   Konstantin Tokar   25 Jun 2002 20:59:30 
 Re: Странности с переменным и   Andrey Sapozhnikov   26 Jun 2002 13:03:37 
 Re: Странности с пере менным и   Konstantin Tokar   26 Jun 2002 15:13:20 
 Re: Странности с переменными   Dmitry Koteroff   24 Jun 2002 20:15:48 
 Re: Странности с пере менными   Konstantin Tokar   24 Jun 2002 21:40:24 
 Re: Странности с пере менными   Dmitry Koteroff   25 Jun 2002 01:13:44 
Архивное /ru.perl/127707e684bce.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional