Как мне реализовать «использование 5.010» в модуле экспорта? - PullRequest
3 голосов
/ 28 августа 2011

Я хочу иметь возможность сказать:

use this;

и сделать его эквивалентным:

use 5.010;

Итак, как бы я написал функцию import для модуля this?

package this;

sub import {
   my $caller = caller;
   ???
}

Ответы [ 3 ]

3 голосов
/ 28 августа 2011

Что вам нужно, это прагма функции импорта:

package myfeature;
require feature;

sub import {
    feature->import(':5.10');
}

1;

Подробнее см. Документацию к прагме: http://perldoc.perl.org/feature.html

1 голос
/ 29 августа 2011

Вы можете просто использовать модуль Modern :: Perl, который автоматически включает 5.10.x

0 голосов
/ 28 августа 2011

Я понимаю, почему вы хотите это сделать, но, тем не менее, это не очень хорошая идея.В настоящее время use VERSION проверяет, что вы используете хотя бы ту версию perl, и включает функции, представленные в указанной версии.В будущем он также фактически изменит работу некоторых функций в соответствии с их работой в этой версии.Вы действительно хотите, чтобы он был указан для каждого файла, а не для всей кодовой базы, или вы будете просить неприятности, когда захотите изменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...