xref: /openbsd-src/gnu/usr.bin/perl/t/op/overload_integer.t (revision 91f110e064cd7c194e59e019b83bb7496c1c84d4)
1850e2753Smillert#!./perl
2850e2753Smillert
3*91f110e0Safresh1BEGIN {
4*91f110e0Safresh1    chdir 't' if -d 't';
5*91f110e0Safresh1    push @INC, '../lib';
6*91f110e0Safresh1    require './test.pl';
7*91f110e0Safresh1}
8*91f110e0Safresh1
9850e2753Smillertuse strict;
10850e2753Smillertuse warnings;
11850e2753Smillert
12*91f110e0Safresh1plan tests => 2;
13850e2753Smillert
14850e2753Smillertpackage Foo;
15850e2753Smillert
16850e2753Smillertuse overload;
17850e2753Smillert
18850e2753Smillertsub import
19850e2753Smillert{
20*91f110e0Safresh1    overload::constant 'integer' => sub { return shift };
21850e2753Smillert}
22850e2753Smillert
23850e2753Smillertpackage main;
24850e2753Smillert
25850e2753SmillertBEGIN { $INC{'Foo.pm'} = "/lib/Foo.pm" }
26850e2753Smillert
27850e2753Smillertuse Foo;
28850e2753Smillert
29850e2753Smillertmy $result = eval "5+6";
30850e2753Smillertmy $error = $@;
31*91f110e0Safresh1$result //= '';
32850e2753Smillert
33*91f110e0Safresh1is ($error, '', "No exception was thrown with an overload::constant 'integer' inside an eval.");
34*91f110e0Safresh1is ($result, 11, "Correct solution");
35850e2753Smillert
36