package open;
+use warnings;
use Carp;
$open::hint_bits = 0x20000;
} elsif ($country_language =~ /^zh_CN|chin(?:a|ese)?$/i) {
$locale_encoding = 'euc-cn';
} elsif ($country_language =~ /^zh_TW|taiwan(?:ese)?$/i) {
- $locale_encoding = 'big5';
+ $locale_encoding = 'euc-tw';
}
croak "Locale encoding 'euc' too ambiguous"
if $locale_encoding eq 'euc';
use Encode;
_get_locale_encoding()
unless defined $locale_encoding;
- (carp("Cannot figure out an encoding to use"), last)
+ (warnings::warnif("layer", "Cannot figure out an encoding to use"), last)
unless defined $locale_encoding;
if ($locale_encoding =~ /^utf-?8$/i) {
$layer = "utf8";
}
$std = 1;
} else {
- unless(PerlIO::Layer::->find($layer)) {
- carp("Unknown discipline layer '$layer'");
+ my $target = $layer; # the layer name itself
+ $target =~ s/^(\w+)\(.+\)$/$1/; # strip parameters
+
+ unless(PerlIO::Layer::->find($target)) {
+ warnings::warnif("layer", "Unknown discipline layer '$layer'");
}
}
push(@val,":$layer");