Skip to content
conditionally use packages
  1. Other 100.0%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

if - conditionally use packages Build Status

if, similar to Perl 5's pragma if will let you conditionally load packages. Use cases (no pun intended) are about loading different implementations of a functionality for different operating systems, compiler backends, or compiler versions.

This means that these switches for different implementations do not happen at runtime, but cheaply at compile time. This also means that a custom build and install hook is not needed because all implementations are installed. Then depending on the conditions only the desired implementation will be used.

Even if the switch is by backends you can share one installation by several backends using this technique.

use if; # activate the :if adverb on use statements

use My::Linux::Backend:if($* eq 'linux');
use My::Fallback::Backend:if($* ne 'linux');

# ... do something with the backend you got


panda install if
You can’t perform that action at this time.