Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Re: Re: Some suggestions on coding style - a chance to critique

by lestrrat (Deacon)
on Jun 26, 2002 at 17:57 UTC ( [id://177457]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Some suggestions on coding style - a chance to critique
in thread Some suggestions on coding style - a chance to critique

True. For a standalone script, it's always nice to see some globally used parameters at the top for easy customization/configuration.

I do the follwing in such cases...

If the variables are "configuration" type of variables, I would use constants, not plain scalars. I feel much better in knowing that most ( if not all ) of the globally accessible variables would be visually different from other local variables:

#!perl use constant LOG_DIRECTORY => '/foo/bar/baz'; use constant SOME_URL => 'http://baboon.com'; main(); sub main { .... some_random_function( LOG_DIRECTORY, $local_variable ); }
  • Comment on Re: Re: Re: Some suggestions on coding style - a chance to critique
  • Download Code

Replies are listed 'Best First'.
Re4: Some suggestions on coding style - a chance to critique
by dragonchild (Archbishop) on Jul 01, 2002 at 18:55 UTC
    using constant is a very good thing to do. However, if you don't know what constant is doing, you can be very surpsised.
    use constant LOG_DIRECTORY => '/foo/bar/baz'; # Equivalent to sub LOG_DIRECTORY () { '/foo/bar/baz' }
    The most obvious problem is interpolation in double-quoted strings.

    Similarly, you can't use LOG_DIRECTORY as the key to a hash, because it's not a C-style preprocessor declaration, but a function declaration.

    Just, be careful and know what is happening under the hood.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

      Doh! Nevermind....

      I can see the interpolation problem, but whats this about not using a constant as a hash key?

      #!/usr/bin/perl -w use strict; use constant LOG_DIRECTORY => '/foo/bar/baz'; my %hash; $hash{LOG_DIRECTORY} = 'happy'; print "log directory ${\LOG_DIRECTORY} is $hash{LOG_DIRECTORY}\n"; __END__ produces: log directory /foo/bar/baz is happy

      -Blake

      Try printing out the keys of %hash. You just assigned the value "happy" to the key "LOG_DIRECTORY". To use the constant LOG_DIRECTORY as the key you need to explicitly use it as a function.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (8)
As of 2024-04-19 09:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found