ну тогда напиши 

use open ();
BEGIN { if (…) { "open"->import(":locale"); } }

просто трактуется как вызов CORE::open(...)

On 28.10.2013, at 19:08, Nikolay Mishin <[email protected]> wrote:

> Так что ли
> 
> BEGIN {
>    use Devel::CheckOS qw(os_is);
>    if ( os_is('Unix') ) {
>        eval q[ use open ':locale';];
>    }
> }
> 
> https://github.com/mishin/gists/blob/master/trans.pl
> 
> p.s.
> Mons, кстати твой код не работает
>  require open;
>  open->import(":locale") 
> 
> p.s. # can't use require_ok() here, with a name like 'open'
> ok( require 'open.pm', 'requiring open' ); из 
> https://metacpan.org/source/JHI/perl-5.8.0/lib/open.t
> 
> работает так:
> 
> BEGIN {
> require 'open.pm';
>        if ( $^O ne 'Win32' ) {
>        open::import('open','locale');
>    }
> }
> 
> 
> ну я еще люблю модули, поэтому так
> 
> BEGIN {
>    use Devel::CheckOS qw(os_is);
>    require 'open.pm';
>    if ( os_is('Unix') ) {
>        open::import( 'open', 'locale' );
>    }
> }
> 
> https://github.com/mishin/gists/blob/master/trans.pl
> 
> 
> 
> 28.10.2013, 17:17, "Олег Алексеенков" <[email protected]>:
>> Nikolay Mishin <[email protected]> писал(а) в своём письме Mon, 28 Oct 2013
>> 17:10:27 +0400:
>> 
>> в eval ""
>> 
>>>  Moscow PM,привет!!
>>> 
>>>  есть скрипт, в котором написано
>>> 
>>>  use open ':locale';
>>> 
>>>  в unix все работает
>>> 
>>>  в win32
>>> 
>>>  Cannot figure out an encoding to use at trans.pl line 25
>>> 
>>>  как сделать так, чтобы use использовалась взависимости от OS
>>> 
>>>  в BEGIN что-ли запихнуть?
>>> 
>>>  use Devel::CheckOS qw(os_is);
>>> 
>>>  BEGIN {
>>>  if ( os_is('Unix') ) {
>>> 
>>>  use open ':locale';
>>>  }
>>>  }
>>> 
>>>  https://github.com/mishin/gists/blob/master/trans.pl
>> 
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
> 
> -- 
> С уважением
> Николай Мишин
> 
> -- 
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить