I don't think I fully understand the placeholder problem you're seeing. It may be Sybase-specific, and if you post the placeholder usage that didn't do what you wanted, you may get some better help.
in reply to Interpolating DBI/SQL placeholders
But if it turns out you really do need to "fill out" the placeholder values by hand, here's how I've done it in the past:
Someone could probably golf this shorter, but you must be careful not to replace question marks that appear in the bind values. For instance, I've seen code on CPAN that would go wrong on this:
my $sql = "insert into foo values (?,?,?)";
my @binds = qw/alpha beta gamma/;
my $i = 0;
$sql =~ s/\?/ $dbh->quote( $binds[$i++] ) /ge;
# "insert into foo values ('alpha','beta','gamma')"
Update: Got rid of \G business.
my $sql = "insert into foo values (?, ?)";
my @binds = ("Huh?", "What?");
# correct: "insert into foo values ('Huh?', 'What?')"
# mysqlPP: "insert into foo values ('Huh'What?'', ?)"