PerlCtrl -t > xlsls.ctrl #### package MyControl; use Net::Telnet; sub doit { my $t = new Net::Telnet(Timeout=>500); $t->open("lin.ux.box.ip") or die $!; # $t->login("user id","password"); # replace ls -al below with /usr/bin/perl as reqd chomp(my @oldls = $t->cmd("ls -al")); my $lsstr = join "\n", map { $_ . ") " . $oldls[$_] } (0 .. $#oldls); $t->close(); return $lsstr; } #### PackageName => 'MyControl', ControlName => 'MyVeryOwnControl', ControlVer => 1, # increment if new ProgID => 'My.Control', LCID => 0, DefaultMethod => 'doit', Methods => { 'doit' => { RetType => VT_BSTR, TotalParams => 0, NumOptionalParams => 0, ParamList =>[ ] } }, # end of 'Methods' Properties => { }, # end of 'Properties' #### PerlCtrl xlsls.ctrl #### Created 'xlsls.dll' #### regsvr32 xlsls.dll #### Sub unrun() Dim objMyControl Set objMyControl = CreateObject("My.Control") 'testing the result of our unix listing/command MsgBox objMyControl.doit End Sub