#!/usr/bin/perl use strict; no warnings; package UNIVERSAL; sub AUTOLOAD { my $method = $UNIVERSAL::AUTOLOAD; $method =~ s/.*:://; return if $method eq "DESTROY"; [$method => @_]; } package DotDotDot; use overload "." => \˙ sub new { bless [] => shift; } sub method { my $self = shift; print "method: @_\n"; } sub dot { my $self = shift; my ($method, @args) = @{+shift}; $self -> $method (@args); } package main; my $obj = DotDotDot -> new; $obj . method (1, 2, 3); __END__ method: 1 2 3