Wednesday, July 7, 2010

Perl: как обмануть strict

Обнаружил забавный баг в перле, связанный с прагмой strict.
Пример неработающего кода:

# perl -e 'package MyPackage; use strict; __PACKAGE__->{foo} = 1'
Global symbol "%MyPackage" requires explicit package name at -e line 1.
Execution of -e aborted due to compilation errors.


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

# perl -e 'package My::Package; use strict; __PACKAGE__->{foo} = 1'


Ошибки нет. Интерпретатор  считает этот код валидным.

No comments:

Post a Comment