{"id":312,"date":"2012-04-05T11:41:21","date_gmt":"2012-04-05T11:41:21","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2012\/04\/05\/difference-between-use-and-require-in-perl\/"},"modified":"2017-12-25T06:27:16","modified_gmt":"2017-12-25T06:27:16","slug":"difference-between-use-and-require-in-perl","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/difference-between-use-and-require-in-perl\/","title":{"rendered":"Difference between use and require in Perl &#8211; use Vs require in perl"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3846 aligncenter\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2012\/04\/perl-use-require-difference.png\" alt=\"perl-use-require-difference\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2012\/04\/perl-use-require-difference.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2012\/04\/perl-use-require-difference-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p><strong>|| use Vs require in perl || What is the difference between use and require?<\/strong><\/p>\n<p>Except of course that use is evaluated at compile time where as require is evaluated at run time in other word, A use anywhere in the code will be evaluated when the code is run compiled, but require &#8211; import&#8217;s can only get evaluated when encoutered.<\/p>\n<p><strong>The differences are many and often subtle:<\/strong><\/p>\n<ol>\n<li>use only expects a bareword, require can take a bareword or an expression<\/li>\n<li>use is evaluated at compile-time, require at run-time<\/li>\n<li>use implicitly calls the import method of the module being loaded, require does not<\/li>\n<li>use excepts arguments in addition to the bareword (to be passed to import), require does not<\/li>\n<li>use does not behave like a function (i.e can&#8217;t be called with parens, can&#8217;t be used in an expression, etc), whereas require does<\/li>\n<\/ol>\n<p>do $file is like eval `cat $file`, except the former:<br \/>\n1.1: searches @INC and updates %INC.<br \/>\n1.2: bequeaths an *unrelated* lexical scope on the eval&#8217;ed code.<\/p>\n<p><strong>require $file is like do $file, except the former:<\/strong><br \/>\n2.1: checks for redundant loading, skipping already loaded files.<br \/>\n2.2: raises an exception on failure to find, compile, or execute $file.<\/p>\n<p><strong>require Module is like require &#8220;Module.pm&#8221;, except the former:<\/strong><br \/>\n3.1: translates each &#8220;::&#8221; into your system&#8217;s directory separator.<br \/>\n3.2: primes the parser to disambiguate class Module as an indirect object.<\/p>\n<p><strong>use Module is like require Module, except the former:<\/strong><br \/>\n4.1: loads the module at compile time, not run-time.<br \/>\n4.2: imports symbols and semantics from that package to the current one.<\/p>\n<p><strong>Command to learn more about use and require<\/strong><br \/>\n&gt; perldoc -f require<br \/>\n&gt; perldoc -f use<\/p>\n","protected":false},"excerpt":{"rendered":"<p>|| use Vs require in perl || What is the difference between use and require? Except of course that use is evaluated at compile time where as require is evaluated&#8230; <\/p>\n","protected":false},"author":1,"featured_media":3846,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[14],"tags":[175,2577,2578,2576,2573,1980,2575,2574,670],"class_list":["post-312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-perl","tag-perl","tag-perl-guide","tag-perl-tutorial","tag-perl-use-and-require-difference","tag-require","tag-use","tag-use-and-require-difference-in-perl","tag-use-vs-require-in-perl","tag-what"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=312"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/312\/revisions"}],"predecessor-version":[{"id":3848,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/312\/revisions\/3848"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3846"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}