Data :: Dumperを使用して、Perlでデータを文字列にシリアル化しました。今、別のプログラムで、を使用して逆シリアル化しようとしていますが、次のevalようになります。
Global symbol "$VAR1" requires explicit package name
私はuse warnings; use strict;自分のプログラムで使用しています。
これが私evalがコードをどのように使っているかです:
my $wiki_categories = eval($db_row->{categories});
die $@ if $@;
/* use $wiki_categories */
"$VAR1"として宣言されていないために死にかけているプログラムを無効にするにはどうすればよいmyですか?
"my "の前に追加する必要が$db_row->{categories}ありevalますか?このような:
my $wiki_categories = eval("my ".$db_row->{categories});
私はまだこれをテストしていませんが、うまくいくと思います。
これを行う他の方法はありますか?おそらくそれをいくつかのブロックでラップし、そのブロックに対してstrictをオフにしますか?私はそれをしたことがありませんが、それが言及されているのを見ました。
助けていただければ幸いです。