in reply to Insert into MSSQL

You have some scoping issues. In your if blocks, you declare $FilmName and $Price with my. That makes each scoped to that block only. When you refer to $FilmName and $Price later, they will be different global varibles. Because you haven't declared them and are using strict, your script will die with a message like:
Global symbol "$FilmName" requires explicit package name at FILE line +LINE
I'm guessing you haven't checked your error log. (Update: or this isn't actually very close to the actual code you are using.)

I also notice here:

my $sth = $dbh->do( "INSERT INTO tblFilm (Name, Price) VALUES ('$FilmName', '$Price')") || + print "Can't prepare statement: $DBI::errstr";
that you probably want to use "or" instead of "||". Since || has higher precedence than =, the way it is will assign the return value of do() to $sth, or assign 1 (the return value of print) if do() returned false. With or instead of ||, $sth will be left undefined if the do() fails.