#!/usr/bin/perl -- use strict; use warnings; use Pashnoid::Fire; my @ok_ports = Pashnoid::Fire->get_ports(); ... #### package Pashnoid::Fire; use Perl::OSType qw' is_os_type '; if( is_os_type('Windows') ){ eval q{use parent 'Pashnoid::Fire::Win32'; 1} or die $@; } else { eval q{use parent 'Pashnoid::Fire::Linux'; 1} or die $@; } 1; #### use Win32; ... sub get_ports { my( $selfOrClass ) = shift; ... #### use Device::SerialPort; ... sub get_ports { my( $selfOrClass ) = shift; ...