Modern-Perl
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/year_imports.t view on Meta::CPAN
eval qq|use Modern::Perl $year; sub { given (0) {} }|;
isnt $@, '', qq|use Modern::Perl $year does not enable switch|;
}
sub test_no_indirect_for {
my $year = _get_year(shift);
my $warning = '';
local $SIG{__WARN__} = sub { $warning = shift };
eval qq|use Modern::Perl $year; my \$foo = new Modern::Perl;|;
like $@, qr/syntax error.+near "new Modern::Perl"/,
qq|use Modern::Perl $year disables indirect method calls|;
}
sub test_no_multidimensional_for {
my $year = _get_year(shift);
my $warning = '';
local $SIG{__WARN__} = sub { $warning = shift };
eval qq{
use Modern::Perl $year;
my (\$x, \$y) = (1, 2);
my %foo;
\$foo{\$x, \$y} = 'bar';
};
like $@, qr/Multidimensional hash lookup is disabled/,
qq|use Modern::Perl $year disables multidimensional array emulation|;
}
sub test_say_for {
my $year = _get_year(shift);
eval qq|use Modern::Perl $year; sub { say 0 }|;
is $@, '', qq|use Modern::Perl $year enables say|;
}
sub test_state_for {
my $year = _get_year(shift);
eval qq|use Modern::Perl $year; state \$x;|;
is $@, '', qq|use Modern::Perl $year enables state|;
}
sub test_cur_sub_for {
my $year = _get_year(shift);
eval qq|use Modern::Perl $year; sub { return __SUB__ }|;
is $@, '', qq|use Modern::Perl $year enables current_sub|;
}
sub test_array_base_for {
my $year = _get_year(shift);
my $warning = '';
local $SIG{__WARN__} = sub { $warning = shift };
if (eval qq|use Modern::Perl $year; \$[ = 10|) {
like $warning, qr/Use of assignment to \$\[ is deprecated/,
qq|use Modern::Perl $year disables array_base|;
}
else {
like $@, qr/Assigning non-zero to \$\[ is no longer possible/,
qq|use Modern::Perl $year works without array_base|;
}
}
sub test_fc_for {
my $year = _get_year(shift);
eval qq|use Modern::Perl $year; fc("tschüÃ") eq fc("TSCHÃSS")|;
is $@, '', qq|use Modern::Perl $year enables fc|;
}
sub test_postderef_for {
my $year = _get_year(shift);
eval qq|use Modern::Perl $year; my \$r = [ 1, [ 2, 3 ], 4 ]; \$r->[1]->@*|;
is $@, '', qq|use Modern::Perl $year enables postderef_qq|;
}
sub test_unicode_strings_for {
my $year = _get_year(shift);
eval qq{
use Modern::Perl $year;
is uc "\xdf", "SS", q|use Modern::Perl $year enables unicode_strings|;
};
}
sub test_signatures_for {
my $year = _get_year(shift);
my @warnings;
local $SIG{__WARN__} = sub { push @warnings, @_ };
local $@;
my ($yearnum) = $year =~ m/(\d+)/;
eval qq{
use Modern::Perl $year;
sub foo_$yearnum( \$bar ) { ... }
};
is $@, '', qq|use Modern::Perl $year enables signatures|;
is @warnings, 0, '... and disables signature warnings';
}
sub test_isa_for {
my $year = _get_year(shift);
eval qq{
use Modern::Perl $year;
my \$foo = bless {}, 'Some::Class';
my \$result = \$foo isa 'Some::Class';
};
is $@, '', qq|use Modern::Perl $year enables isa|;
}
sub test_warnings_for {
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.789 second using v1.00-cache-2.02-grep-82fe00e-cpan-dad7e4baca0 )