in reply to Writing portable code
Coming as I do from an OO background, I would approach the problem like this:
#! perl use strict; use warnings; { package FunctionsFactory; my $class = ($^O =~ /Win/) ? 'WinFunctions' : 'LinuxFunctions'; sub new { return $class->new(); } } { package WinFunctions; sub new { return bless {}, shift; } sub f { print "Windows f()\n"; } sub g { print "Windows g()\n"; } } { package LinuxFunctions; sub new { return bless {}, shift; } sub f { print "Linux f()\n"; } sub g { print "Linux g()\n"; } } my $funcs = FunctionsFactory->new(); $funcs->f(); $funcs->g();
Output (on my system!):
19:49 >perl 564_SoPW.pl Windows f() Windows g() 19:53 >
This scheme allows you to keep all the code in one file, and gives a clean/transparent interface to the functions concerned.
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Writing portable code
by tobyink (Canon) on Mar 08, 2013 at 10:08 UTC | |
by DrHyde (Prior) on Mar 11, 2013 at 11:34 UTC |