Often one knows beforehand which subclass of base class in which to initialize one's method. However, in my case, I want to call a constructor as a function of the operating system that I am on.
My first thought was to use a hash keyed on operating system name and store a reference to the new of each class as the value, ie:
%constructor = (
'MSWin32' => \&FTP::Session::Win32->new,
'HPUX' => \&FTP::Session::HPUX->new
Which brings up an additional question: since I am using an arrow in the above code instead of ::
, will the first argument to the new be the package name? And will it only pass arguments if I had used ::
Thanks for any help guys.