in reply to Re^2: Bad news for IO::Handle magic (SWYM or sink)
in thread Bad news for IO::Handle magic
#!/usr/bin/perl use strict; # For debugging: sub dump { my( $name, $ref ) = @_; require Data::Dumper; my $dumper = Data::Dumper->new( [$ref], [$name] ); $dumper->Indent(1)->Useqq(1)->Terse(1); print STDERR $dumper->Dump(); } my $foo = "Test value"; dump( foo => $foo ); # Should instead used: #&dump( foo => $foo ); # ...
produces:
abnormal program termination
Helpful, isn't it? I suspect quite a few people don't immediately see what the problem is. I also suspect that no small number of people could waste quite a bit of time trying to figure this problem out before the solution comes to them and they snack themselves in the forehead.
Adding the & or renaming the sub to debugDump or moving the sub to a module will solve the problem.
The problem is that dump is a built-in. I don't care to memorize the entire list of Perl built-ins nor to put my code at risk when new built-ins are added (rarely).
- tye
|
|---|