reordering conditions in Win32.pm
[p5sagit/p5-mst-13.2.git] / lib / open.pm
index 79cd61b..b535d88 100644 (file)
@@ -11,9 +11,13 @@ sub in_locale { $^H & $locale::hint_bits }
 sub _get_locale_encoding {
     unless (defined $locale_encoding) {
        # I18N::Langinfo isn't available everywhere
-       eval "use I18N::Langinfo qw(langinfo CODESET)";
-       unless ($@) {
+       eval {
+           require I18N::Langinfo;
+           I18N::Langinfo->import(qw(langinfo CODESET));
            $locale_encoding = langinfo(CODESET());
+       };
+       unless ($@) {
+           print "# locale_encoding = $locale_encoding\n";
        }
        my $country_language;
         if (not $locale_encoding && in_locale()) {
@@ -62,7 +66,7 @@ sub import {
            $type = 'IO';
            $dscp = ":$1";
        } else {
-           $dscp = shift(@args);
+           $dscp = shift(@args) || '';
        }
        my @val;
        foreach my $layer (split(/\s+/,$dscp)) {
@@ -119,7 +123,7 @@ open - perl pragma to set default disciplines for input and output
     use open IO  => ":encoding(iso-8859-7)";
 
     use open IO  => ':locale';
-  
+
     use open ':utf8';
     use open ':locale';
     use open ':encoding(iso-8859-7)';
@@ -139,7 +143,7 @@ operators found within the lexical scope of this pragma will use the
 declared defaults.
 
 With the C<IN> subpragma you can declare the default layers
-of input sterams, and with the C<OUT> subpragma you can declare
+of input streams, and with the C<OUT> subpragma you can declare
 the default layers of output streams.  With the C<IO>  subpragma
 you can control both input and output streams simultaneously.