Selve programmet ligger i /usr/sbin/gsm_server
For at programmet bliver overskueligt at vedligeholde har jeg splittet dele
af det op i under-moduler.
Men hvor skal disse placeres?
Jeg ser umiddelbart to muligheder:
1)
/usr/share/perl5/GSM/Server/Send_SMS.pm
/usr/share/perl5/GSM/Server/Receive_SMS.pm
2)
/usr/share/gsm_server/Send_SMS.pm
/usr/share/gsm_server/Receive_SMS.pm
Den f�rste er ret l�kker for /usr/share/perl5 er med i Perls s�gesti og jeg
kan kalde modulerne med
my $send = new GSM::Server::Send_SMS;
mens den anden kr�ver lit 'use lib' sjov.
Omvendt er modulerne jo meget specifikke og kun anvendbare for programmet
'gsm_server' s� m�ske det er helt galt at smide dem i '/usr/share/perl5'?
Hj�lp, guide og best-practice �nskes :-)
Jeg ville helt klart smide modulerne sammen med programmet, evt. i et pm
subdir, tricket med at finde modulerne ordnes s� ved:
...
use FindBin qw($Bin);
use lib "$Bin/pm";
use LokaltHejs;
--
Flemming Frandsen - http://dren.dk - YAPH
Dvs ned i /usr/share/sbin/PM/*.pm ?
Det er vel ogs� det "reneste" men troede ikke jeg "bare" kunne h�lde
programspecifikke ting ned i sbin...
> Jeg har et program som kᅵrer som en dᅵmon der bliver startet fra init.d
> (Det kan sende og modtage sms fra et modem)
Jeg ville absolut lave en CPAN-lignende pakke med dit program, enten
med Module::Build eller ExtUtils::MakeMaker. Sᅵ vil du fᅵ en Build.PL
eller Makefile.PL der gᅵr det rigtige.
> Omvendt er modulerne jo meget specifikke og kun anvendbare for programmet
> 'gsm_server' sᅵ mᅵske det er helt galt at smide dem i '/usr/share/perl5'?
Jeg ville lᅵgge dine moduler ned under App::GSM_Server::*. Alt det
kode du ikke har tᅵnkt dig at lᅵgge i moduler ville jeg placerer i
App::GSM_Server, eventuelt i en run-funktion.
Selve "scriptet" vil sᅵ bare bestᅵ af to linjer der siger:
use App::GSM_Server;
App::GSM_Server->run();
Lidt ala http://github.com/pmakholm/app-bulkmail-perl
//Makholm
> Selve "scriptet" vil sᅵ bare bestᅵ af to linjer der siger:
>
> use App::GSM_Server;
> App::GSM_Server->run();
>
> Lidt ala http://github.com/pmakholm/app-bulkmail-perl
Ved nᅵrmere eftertanke mᅵske ikke et helt godt eksempel fordi jeg ogsᅵ
leger lidt rundt med Any::Moose. Men ideen er simpelt at have
package App::Bulkmail;
use Carp;
sub new {
my ($class, %args) = @_;
unless (keys %args) {
require Getopt::Long;
Getopt::Long::GetOptions( \%args,
"foo=s", "bar=i"
) or croak(...);
}
return bless \%args, $class;
}
sub run {
my $self = shift;
unless (blessed $self) {
$self = $self->new( @_ );
}
...
}
1;