There are two problems there. qw takes each blank characters separated elements in its operand (most often, words separated by spaces) and reads them in a simple quotish context. Put a simpler way, qw(A $b C %h); could also be written ('A', '$b', 'C', '%h'). In Ruby there is a qw-like construct that allows double-quotish interpretation, but this is Perl. So you instead have to write use lib ("$some_path/lib",); (the comma is optional, I just always put an extra comma in a single element list).
The second issue is that use is called straightaway, so you could say that perl reads your program :
there is a global variable called $some_path
add to path $some_path/lib
$some_path = dirname(File::Spec->rel2abs(__FILE__));
This is of course really simplified.
The BEGIN keyword means that a block has to be executed during compile time, and not to wait after compilation completion. You should write:
$some_path = "/my/path";
use lib "$some_path/lib"; # Yeah, you don't even need the parenthesis,
+ Perl is clever enough for you
# Edit : thanks dave_the_m for the correction