my $os = eval "\\&FTP::Session::${^O}->new"; my %constor = ( $^O => $os ); #### sub new { bless {}, shift }; # which is equivalent to this sub new { my $class = shift @_; my $self = {}; my $ref = bless $self, $class; return $ref; } # Bless could actually be: bless {}, 'Package::Name';