use strict qw(refs subs);
-plan(96);
+plan(106);
+
+{
+ no warnings qw 'deprecated syntax';
+ eval '[]->$*';
+ like $@, qr/Can't call method/, '->$* outside of feature scope';
+ eval '[]->@*';
+ like $@, qr/syntax error/, '->@* outside of feature scope';
+ eval '[]->@[1]';
+ like $@, qr/syntax error/, '->@[ outside of feature scope';
+ eval '[]->@{1}';
+ like $@, qr/syntax error/, '->@{ outside of feature scope';
+ eval '[]->%*';
+ like $@, qr/syntax error/, '->%* outside of feature scope';
+ eval '[]->%[1]';
+ like $@, qr/syntax error/, '->%[ outside of feature scope';
+ eval '[]->%{1}';
+ like $@, qr/syntax error/, '->%{ outside of feature scope';
+ eval '[]->&*';
+ like $@, qr/syntax error/, '->&* outside of feature scope';
+ eval '[]->**';
+ like $@, qr/syntax error/, '->** outside of feature scope';
+ eval '[]->*{';
+ like $@, qr/syntax error/, '->*{ outside of feature scope';
+}
+
+use feature 'postderef';
{
no strict 'refs';
else if (*s == '>') {
s++;
s = SKIPSPACE1(s);
- if (((*s == '$' || *s == '&') && s[1] == '*')
+ if (FEATURE_POSTDEREF_IS_ENABLED && (
+ ((*s == '$' || *s == '&') && s[1] == '*')
||((*s == '@' || *s == '%') && strchr("*[{", s[1]))
- ||(*s == '*' && (s[1] == '*' || s[1] == '{')))
+ ||(*s == '*' && (s[1] == '*' || s[1] == '{'))
+ ))
{
PL_expect = XPOSTDEREF;
TOKEN(ARROW);