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をオフにしますか?私はそれをしたことがありませんが、それが言及されているのを見ました。
助けていただければ幸いです。