Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Hvor skal filerne ligge?

1 view
Skip to first unread message

Morten P

unread,
Dec 18, 2009, 7:20:24 PM12/18/09
to
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)

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 :-)


Flemming Frandsen

unread,
Dec 20, 2009, 4:23:07 AM12/20/09
to
Morten P wrote:
> mens den anden kr�ver lit 'use lib' sjov.

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

Morten P

unread,
Dec 20, 2009, 4:54:59 AM12/20/09
to

"Flemming Frandsen" <ff-...@nrvissing.net.invalid> wrote in message
news:4b2decfb$0$56787$edfa...@dtext02.news.tele.dk...

> Morten P wrote:
>> mens den anden kr�ver lit 'use lib' sjov.
>
> Jeg ville helt klart smide modulerne sammen med programmet, evt. i et pm
> subdir, tricket med at finde modulerne ordnes s� ved:


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...


Peter Makholm

unread,
Dec 20, 2009, 5:34:52 AM12/20/09
to
"Morten P" <sp...@spam.spam> writes:

> 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

Peter Makholm

unread,
Dec 20, 2009, 5:48:52 AM12/20/09
to
Peter Makholm <pe...@makholm.net> writes:

> 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;

0 new messages