07.02.2013 12:55, Гришаев Анатолий пишет:
03.02.2013 1:18, Ivan Petrov пишет:

то что Монс предложил (и я это пробовал ДО того как задал вопрос в
рассылку) у меня дает такой варнинг

Name "main::b" used only once: possible typo at test.pl line 11.
Name "main::a" used only once: possible typo at test.pl line 11.



А чем не нравиться

    no warnings 'once';
    @b = my_sort { $a <=> $b } 1, 3, 2;
?
В конце концов можно пойти хакерским путем

В пакете
==============
    package B;
    use strict;
    use warnings;
    use Exporter ();
    sub import{
        my $c = caller;
        no strict 'refs';
        undef ${ join "::", $c, 'a' };
        undef ${ join "::", $c, 'b' };
        goto &Exporter::import;
    }

    sub my_sort(&@){
        my ( $cmp, @args ) = @_;
        ...
    }
    BEGIN {
    our @EXPORT_OK = qw(my_sort);
    }
}
=============
А в самом скрипте уже
=============
use strict;
use warnings;
use B qw(my_sort);

my @b = my_sort { $a <=> $b } 1, 3, 2;
=============

Тоже не вызывает warnings 'once';

--
С уважением Анатолий.
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить