Adaptive Server Enterprise database driver for Perl supports stored procedures with input and output parameters.
$sth = $dbh->prepare(qq[ declare \ @name varchar(50) exec getname abcd, \ @name output ]);
Stored procedures cannot be called with bound parameters:
Illegal:
$sth = $dbh->prepare("exec my_proc ?"); $sth->execute('foo');
Correct:
$sth = $dbh->prepare("exec my_proc 'foo'"); $sth->execute('foo');
Because Sybase stored procedures almost always return more than one result set, make sure to use a loop until syb_more_results is 0:
do { while($data = $sth->fetch) { do something useful... } } while($sth->{syb_more_results});