a) You're firing the first 3 statements without a "GO" in between. try this :
set TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
GO
set quoted_identifier on
GO
use smdb
GO
b) You dont need to use double quotes in the :
use "master" line
c) try running the sql without any semi-colons. i dont think u need to add any semi-colons when you're executing the sql from a perl script.
And
</code>
and lastly, i would suggest testing the sql with just a simpler sql ,and if that works, go on adding to the sql stmt , one small step at a time, testing each time to see what addition is causing the sql to fail....
hth