in reply to Perl module problem

I don't know what in particular is causing what you are seeing, but I do see a couple of flaws.

The $self->{filename} makes me think you are using xls_conv as an object method but you are not setting $self anywhere in the sub. I'd expect to see a line like my $self = shift; at the top.

In any case, you have a prototype on your sub (which shouldn't be the case for an object method) but aren't using any parameters.

Try use strict and it will complain about any variables that you should be declaring with my in your subs but are instead using as (undeclared) globals.