http://www.perlmonks.org?node_id=251632


in reply to Re: Re: Location of 'use' statements
in thread Location of 'use' statements

Yep, Data::Dumper for example will complain (under -w) about printing to an unopened file handle if you say

Actually its perl that complains here. The warning is provided because perl reads

print Dumper $quux;

as

use IO::File; Dumper->print($quux);

when 'Dumper' is an unknown bareword. Personally I always disambiguate print statements in some way just because ive been bitten a few times.

Incidentally in this case its not much harder (and often desirable) to replace that with

print Data::Dumper->new([$quux],['quux'])->Dump(),"\n";

I say desirable, and use the long winded ->new() form because now we can easily add stuff in the middle:

# we have large cyclic structures: disable pretty indent, enable purit +y mode. print Data::Dumper->new([$quux],['quux'])->Purity(1)->Indent(1)->Dump( +),"\n";

---
demerphq

<Elian> And I do take a kind of perverse pleasure in having an OO assembly language...

Replies are listed 'Best First'.
Re: Re: Re: Re: Location of 'use' statements
by djantzen (Priest) on Apr 19, 2003 at 20:57 UTC

    Actually its perl that complains here.

    That's what I meant to say ;^) Normally when I'm writing new code at some point I end up wanting to Dumper something, and so recently I've just started adding that automatically to the top of the file. My new mantra is use strict; use warnings; use Data::Dumper, and then after development I'll remove the latter.

    I'm glad you posted this because when I read # we have large cyclic structures: disable pretty indent, enable purity mode I realized that my normal use of Dumper in the application I'm writing has been unnecessarily difficult to read. I've got a data structure where trees hang off of digraph nodes and a dump of any element fills the entire screen from side to side -- your version is much easier on the eyes, thanks!


    "The dead do not recognize context" -- Kai, Lexx