I have tried that, and it does not work.
But you said Thank you, worked like a charm!, so which is it?
Seriously, don't ever write code in string eval, seeing \\\\ \$ ..... should make your eyes bleed.
Start making subroutines, make them into modules, use require .... basically follow the advice you get, read the tutorials linked, things like that
#!/usr/bin/perl --
use strict;
use warnings;
use Pashnoid::Fire;
my @ok_ports = Pashnoid::Fire->get_ports();
...
lib/Pashnoid/Fire.pm
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;
lib/Pashnoid/Fire/Win32.pm
use Win32;
...
sub get_ports {
my( $selfOrClass ) = shift;
...
lib/Pashnoid/Fire/Linux.pm
use Device::SerialPort;
...
sub get_ports {
my( $selfOrClass ) = shift;
...
|