##
sub run{
my ($self,%arg) = @_;
if (defined $arg{open}){
$self->_open_it_and_run_it(open => $arg{open});
}
}
####
sub _open_it_and_run_it{
my ($self,%arg) = @_;
open (IN, "<",$arg{open}) || die "$!";
while (){
...
}
close IN:
}
## ##
run(open =>'./', ....);
####
run(open =>'./dir/', ....);