I am writing a script that needs to save it's state to a file and then load it in again later. I use the convention of using the S namespace to denote that the variable should be saved.
I am actually using a very light weight custom dumper function, but I was able to replicate the problem with the standard Data::Dumper library.
I was able to boil down the problem to this script:
#!/usr/bin/perl -T use Data::Dumper; $S::taint = $ARGV[0]; while (my ($name, $glob) = each %S::) { if (defined $$glob) {print Dumper($$glob)} print Dumper("$$glob") if (defined $$glob); print Dumper($$glob) if (defined $$glob); }
In the while loop, the first and second line work just fine. However, the third line (which I happened to use) results in a fatal run-time error. Specifically Can't coerce GLOB to string in padsv at ./taint.pl line 10.
My version of Perl is: This is perl, v5.8.5 built for i386-freebsd-thread-multi-64int
Am I missing something, or if this an error somewhere with the Perl internals?
Thanks!
In reply to Strange error dumping tainted data by zealot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |