sub fun1 ($;@) { my($cat,@vals) = @_; ... } my(@args); $args[0] = "type1"; push(@args,"a","b","c"); fun1(@args);