Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Perl - странное поведение при use strict.

7.3K
13 июня 2008 года
JB13
64 / / 05.09.2005
Всем доброго времени суток. Наконец решил изучить Perl. Язык для меня оказался несколько странноватым, но тем и интереснее :)

Я столкнулся с интересной особенностью. Если я пытаюсь выполнить такой код
 
Код:
#!/usr/bin/perl -w

use strict;

$var = 'Hello';
print "$var\n";


То Perl, как и положено при использовании use strict, вываливается с сообщением

 
Код:
Global symbol "$var" requires explicit package name at ./test.pl line 5.
Global symbol "$var" requires explicit package name at ./test.pl line 6.


т.е. не разрешает использовать переменные без явного указания области видимости. Но если, в качестве имени переменной использовать $a

 
Код:
#!/usr/bin/perl -w

use strict;

$a = 'Hello';
print "$a\n";


то Perl выдает
 
Код:
Hello


В чем подвох? :) Тоже самое, если использовать переменную $b.


Версия Perl

 
Код:
root@web:/home/jb# uname -a
Linux web 2.4.31 #6 Sun Jun 5 19:04:47 PDT 2005 i686 unknown unknown GNU/Linux

root@web:/home/jb# perl -v

This is perl, v5.8.7 built for i486-linux
2
13 июня 2008 года
squirL
5.6K / / 13.08.2003
$a и $b - это встроенные переменные, используемые функцией sort
perldoc -f sort вам все объяснит :)
7.3K
16 июня 2008 года
JB13
64 / / 05.09.2005
Понял, спасибо :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог