$ perl -E " my( $r, $a, @bba ) = ( 0, 1, 2..4,1,2..4 ); $r = $a ~~ @bba; say $r; " 1 #### #!/usr/bin/perl -- use 5.010; use strict; use warnings; my @array = ( 2..4,6,2..4 ); say "@array"; my $r = 6 ~~ bless\@array,'smart::ix'; say "$r $$r = $array[$$r]"; BEGIN { package smart::ix; use overload '~~' => \&rix; sub rix { my( $self, $val, $selfOnRight ) = @_; my $ix = 0; while( $ix <= @$self ){ return \$ix if $val ~~ $self->[$ix]; $ix++; } return ; } $INC{'smart/ix.pm'} = __FILE__; 1; } __END__ 2 3 4 6 2 3 4 SCALAR(0x9b386c) 3 = 6