|Do you know where your variables are?|
You should note though, that here as many other places in Perl, your mileage may vary.
Some DBD's (Database Drivers) support placeholders (most do, but some may not).
Some DBD's have a performance gain from using placeholders others have no, and in some cases even a performance loss.
The best advice is probably to code in a way that is as clear and maintainable as possible, whether that entains using placeholders or not, and then (perhaps) optimize later.
The performance gain from using placeholders in 100 insert statements is probably minor compared to the cost of connecting to the database, so if that is all you do in your script, then why bother? On the other hand, if it is in the inner loop of something repeated umpteen times, then please do bother.
Prepare_cached is also only supported by some DBD's, so it would definitly not be a good idea to use it without checking that it does work for your database.
Just the 0.02 euro of a DBD-writer trying to handle placeholders and prepare_cached in a sensible way with a calcitrant Database System.