in reply to using 'my $var' vs. 'my($var)'

You are evaluating @_ in a scalar context! When you say my $conf_file = @_; you are putting the number of elements stored in the @_ list (i.e. "1") into the variable $conf_file. When you say my ($conf_file) = @_; you are evaluating @_ in an array context because what is on the LHS of the assignment is an array. So the element in @_ is copied over to $conf_file. You could say something like: my $conf_file = shift; to shift an element off of @_ into $conf_file if you don't like the parens! -- jeff