summaryrefslogtreecommitdiff
path: root/ext/re/re.pm
diff options
context:
space:
mode:
Diffstat (limited to 'ext/re/re.pm')
-rw-r--r--ext/re/re.pm18
1 files changed, 13 insertions, 5 deletions
diff --git a/ext/re/re.pm b/ext/re/re.pm
index 850b948d34..0193e6a425 100644
--- a/ext/re/re.pm
+++ b/ext/re/re.pm
@@ -147,12 +147,20 @@ sub bits {
for(split//, $s) {
if (/[adul]/) {
if ($on) {
- if ($seen_charset && $seen_charset ne $_) {
+ if ($seen_charset) {
require Carp;
- Carp::carp(
- qq 'The "$seen_charset" and "$_" flags '
- .qq 'are exclusive'
- );
+ if ($seen_charset ne $_) {
+ Carp::carp(
+ qq 'The "$seen_charset" and "$_" flags '
+ .qq 'are exclusive'
+ );
+ }
+ else {
+ Carp::carp(
+ qq 'The "$seen_charset" flag may not appear '
+ .qq 'twice'
+ );
+ }
}
$^H{reflags_charset} = $reflags{$_};
$seen_charset = $_;