File: Overloader.pm

package info (click to toggle)
libnamespace-autoclean-perl 0.31-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 520 kB
  • sloc: perl: 580; makefile: 2
file content (27 lines) | stat: -rw-r--r-- 545 bytes parent folder | download | duplicates (5)
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
use strict;
use warnings;
package Overloader;

use ExporterModule qw/stuff/;
use Scalar::Util 'looks_like_number';
use namespace::autoclean;

sub new {
    my ($class, %args) = @_;
    bless { %args }, $class;
}

use overload
    '""' => sub { shift->{val} || 'fallback string' },
    '0+' => sub {
        my $self = shift;
        $self->{val} && looks_like_number($self->{val})
            ? $self->{val}
            : 42;
    },
    fallback => 1,
;

use constant CAN => [ qw(new) ];
use constant CANT => [ qw(stuff looks_like_number) ];
1;