<div dir="ltr">to make things simple (and i&#39;ll admit that i did not bother to read the entire thread...):<div>&quot;use&quot; is a combination of 2 actions: &quot;require&quot; &amp; &quot;import&quot; and is executed during COMPILE TIME.</div>
<div>while require when called is executed during run time.</div><div>what it means is that if you &quot;use&quot; a module, it will be loaded and imported during the compile phase of the interpreter</div><div>while &quot;require&quot; is used to load classes dynamically.</div>
<div>just to further clarify things, compile time is a phase where variables are not populated and only rudimentary (this will probably cause me to be flamed</div><div>into hell) calculations are carried, for example: all &quot;use&quot; directives are executed, all constants are populated and so on.</div>
<div><br></div><div>myself, i prefer using &quot;Module::Load&quot; as it provides a more clean interface and also imports the required class.</div><div><br></div><div>hope this clear things a bit</div><div><br></div><div>
Ronen</div><div><br><br><div class="gmail_quote">On Mon, Mar 21, 2011 at 8:17 AM, Levenglick Dov-RM07994 <span dir="ltr">&lt;<a href="mailto:RM07994@freescale.com">RM07994@freescale.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Taking this 17 steps back, although there is extensive documentation I have yet to fully grasp the difference between use and require. I know it well enough to explain to people who know less about perl than I do - but I don&#39;t truly understand.<br>

<br>
Would someone, without quoting perldoc or sending me to RTFM, please explain the mechanics of the difference; all ramifications included.<br>
<br>
<br>
Best Regards,<br>
Dov Levenglick<br>
SmartDSP OS Development Leader<br>
<div><div></div><div class="h5">-----Original Message-----<br>
From: <a href="mailto:perl-bounces@perl.org.il">perl-bounces@perl.org.il</a> [mailto:<a href="mailto:perl-bounces@perl.org.il">perl-bounces@perl.org.il</a>] On Behalf Of Shmuel Fomberg<br>
Sent: Sunday, March 20, 2011 05:15<br>
To: Perl in Israel<br>
Subject: Re: [Israel.pm] use and require<br>
<br>
On 2011/03/13 19:45, sawyer x wrote:<br>
&gt;<br>
&gt;     Whenever I see &#39;require&#39; used instead of &#39;use&#39;, I expect problems<br>
&gt;     in the<br>
&gt;     module-dependency tree.<br>
&gt;<br>
&gt;<br>
&gt; I think there are benefits to both. It depends, as always, on your needs.<br>
&gt;<br>
&gt; If you have a healthy build process, you can use &quot;require&quot; instead of<br>
&gt; &quot;use&quot; when you want to allow some features to be lazy, and that&#39;s very<br>
&gt; useful. You can also allow loading two different versions of the same<br>
&gt; mechanism, depending on some logic. If you have this, load that one,<br>
&gt; if not, load this one. Imagine Mouse only uses Moose if it&#39;s already<br>
&gt; loaded, saving you a ton on compile-time.<br>
While you are right, I think that these &#39;require&#39; statements should be<br>
in very specific places. plugins finding and loading code, dynamic<br>
feature loading, and so on.<br>
but not littered through the code.<br>
Especially the main perl file, should &#39;use&#39; all the modules that are<br>
known to be needed for running it. no point leaving it to later point of<br>
time.<br>
<br>
Shmuel.<br>
_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@perl.org.il">Perl@perl.org.il</a><br>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br>
<br>
<br>
_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@perl.org.il">Perl@perl.org.il</a><br>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br>
</div></div></blockquote></div><br></div></div>