#!/usr/bin/env perl use warnings; use strict; use 5.10.0; my $new = Term_Choose->new(); say $new->choose( 1, 2 ); say Term_Choose::choose( 4, 6 ); package Term_Choose; sub new { my $class = shift; my $self = {}; return bless $self, $class; } sub choose { my $n = Term_Choose->new(); $n->choose( 1, 1, @_, 2, 2 ); } { no warnings 'redefine'; sub choose { my $self = shift; return @_; } } 1;