[Moscow.pm] А как написать свой sort?
Гришаев Анатолий
0body0 на rambler.ru
Чт Фев 7 01:05:39 PST 2013
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