... key_path= $private_key_path, ... #### $ perl -MO=Deparse,-p -e 'my $ssh = Net::OpenSSH->new($host, user => $user, master_opts => ["-vvv"], key_path= $private_key_path, default_ssh_opts=>[-o =>"Port=24"]);' Can't modify constant item in scalar assignment at -e line 1, near "$private_key_path," -e had compilation errors. (my $ssh = 'Net::OpenSSH'->new($host, 'user', $user, 'master_opts', ['-vvv'], ('key_path' = $private_key_path), 'default_ssh_opts', [(-'o'), 'Port=24'])); #### $ perl -MO=Deparse,-p -e 'my $ssh = Net::OpenSSH->new($host, user => $user, master_opts => ["-vvv"], key_path=> $private_key_path, default_ssh_opts=>[-o =>"Port=24"]);' (my $ssh = 'Net::OpenSSH'->new($host, 'user', $user, 'master_opts', ['-vvv'], 'key_path', $private_key_path, 'default_ssh_opts', ['-o', 'Port=24'])); -e syntax OK