Or slight improvement:

BEGIN { if( $^O =~ /MSWin32/ ) { require Win32::DriveInfo; import Win32::DriveInfo; } else { require Filesys::DiskFree; import Filesys::DiskFree; } }
But note that you can't make use of the (conditional) compile-time magic such as calling the imported routines without using parens unless it happens that both modules import routines having that same name. This means that the BEGIN block is rarely of much use and can often be dropped.

Further, I suggest that it is often a very good idea to drop the BEGIN block so that you don't accidentally try to make use of some conditional compile-time magic and release a version of your code that won't compile in the "other" case (or just so you save yourself the trouble of finding these bugs when you test the "other" case).

It doesn't appear that either of these modules actually export any symbols. So they should probably have their documentation updated to replace use with require and you can probably drop both of the import lines above (as well as the BEGIN block):

if( $^O =~ /MSWin32/ ) { require Win32::DriveInfo; } else { require Filesys::DiskFree; }
(:

        - tye (but my friends call me "Tye")

In reply to (tye)Re: (conditional) use package by tye
in thread use package by jhgrizz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.