Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Re: Location of 'use' statements

by djantzen (Priest)
on Apr 18, 2003 at 22:32 UTC ( [id://251567]=note: print w/replies, xml ) Need Help??


in reply to 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

use Data::Dumper; package Foobar; my $quux = {} print Dumper $quux;

The idea between the fourth approach is to separate those things must be imported into the package itself, versus those that can be left apart.


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

Replies are listed 'Best First'.
Re: Re: Re: Location of 'use' statements
by demerphq (Chancellor) on Apr 19, 2003 at 11:30 UTC

    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...

      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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://251567]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (3)
As of 2024-04-18 22:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found