File: 10underscore.t

package info (click to toggle)
libscalar-does-perl 0.203-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 296 kB
  • sloc: perl: 374; makefile: 2
file content (58 lines) | stat: -rw-r--r-- 983 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
=head1 PURPOSE

Tests that the one-argument forms of C<does> and C<overloads> work with lexical
C<< $_ >>, using C<< my $_ >>.

=head1 SEE ALSO

L<https://rt.cpan.org/Ticket/Display.html?id=80434>.

=head1 AUTHOR

Toby Inkster E<lt>tobyink@cpan.orgE<gt>.

=head1 COPYRIGHT AND LICENCE

This software is copyright (c) 2012-2014 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut

use strict;
use warnings;
use Test::More;
use Test::Requires "v5.10.0";

BEGIN {
	plan skip_all => "skipping lexical \$_ test in Perl >= 5.17" if $] >= 5.017;
};

use Scalar::Does -constants, 'overloads';

$_ = [];
ok does ARRAY;
ok not does HASH;

{
	my $_ = {};
	ok does HASH;
	ok not does ARRAY;
}

{
	my $_ = do {
		package Local::Overloader;
		use overload '%{}' => sub { +{} };
		bless [];
	};

	ok does ARRAY;
	ok does HASH;
	ok not overloads '@{}';
	ok overloads '%{}';
}

done_testing;