qw doesn't interpolate variables. If you say qw($blah), you'll get the literal text "$blah", not the value of $blah. Instead, just do @args = "/where/the...", but change "user_id@db" to "user_id\@db" so Perl doesn't think it's an array. Then everything will work fine.
Actually, I'm not even sure why you're putting it in @args and not $args. I think a scalar would be more than happy to hold your string for you.
---
I'm too sexy for my .sig.