hashを書いたファイルを作成して、requireで読み込んでそのまま使おうとしています。

---------------------
・ファイルの中身
%s=('id',q(1),'name',q(40),'logouttime',q(2006-01-26 15:38:36),'m',q(1),'rowsize',q(10),'s',q(7f02f000320007d0106a));
---------------------
・ソース
if (ろぐいんok) {
 require ふぁいる;
 %mainhash = %s;
}
---------------------

普通に使えていたのですが、use strictを入れたらフォーカスがあいまい?だと怒られた為、
---------------------
・ソース
if (ろぐいんok) {
 my %s;
 require ふぁいる;
 %mainhash = %s;
}
---------------------
のようにしたのですが、これですとエラーは出なくなるのですが、
my %sとrequire内の%sが別扱いになってしまうのか、hashが空で読み込まれるようになってしまいました。

requireを使う前提で、なにか解決策などありますでしょうか。
ファイルのデータ構造を変えて普通にファイルとして読み込んでからハッシュに格納するようにすればいいんでしょうが、
こういう使い方ができないのかどうか激しく疑問です。。

以上、ご教授よろしくお願いします。