--- John <[EMAIL PROTECTED]> wrote:
> If you put them in a module are they parsed before they are called? 
> Does it matter whether you use "use" or "require"?  When is it better 
> to specify subroutines when you use "use"?

See perldoc -f use and perldoc -f require.

"use" happens at compile time.  When a module is "use"d, it's pretty much equivalent 
to the
following:

BEGIN
{
    require Foo;
    import FOO qw/ bar baz /;
}

If you simply "require" a module, this will occur at runtime, but the module won't be 
used if the
require isn't called.  This is useful in functions or methods that are called 
infrequently:

use strict;
use warnings;

error_handling( "You fool!\n", { foo => 3 } );

sub error_handling
{
    my ( $message, $data ) = @_;
    require Data::Dumper;
    Data::Dumper->import;
    die $message, Dumper( $data );
}

(That's just an example, not really a proper error handling routine)

Now, if we have a program that rarely, if ever, calls the error_handling() routine, we 
don't incur
the overhead of compiling Data::Dumper unless we actually need it.

Cheers,
Curtis "Ovid" Poe

=====
"Ovid" on http://www.perlmonks.org/
Someone asked me how to count to 10 in Perl:
push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//;
shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

__________________________________________________
Do You Yahoo!?
Great stuff seeking new owners in Yahoo! Auctions! 
http://auctions.yahoo.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to