a previous company i worked for provided one install/upgrade self-extracting binary for unix (all flavors) and another for windows server. all the custom provided perl modules were cross-platform and deployed during install or upgrade into our main software directory, that is kept separate from perl installation itself. the many perl programs/scripts all followed a standard to push the custom perl module directory onto @INC, before any "use" statements. this minimizes need to muck about with system environment. we never made use of custom modules that are not part of the standard supplied (proprietary build) perl that would require XS/binary code compiled for separate platforms.
at some stage a proprietary (but fully scripted) patching system was also developed, to deliver small but important fixes between major upgrades. naturally there's plenty of sanity code there to make sure it does the right thing or it stops..and you have a full trace of all that was done to that point, and an automated prior backup.
i'm not entirely certain that absolutely everything was best practice..but these systems generally faired well, and without saying figures, if i sold the system and kept the money for myself, i could live without working for life.
all the perl code was structured in certain ways. the code was easy to read/develop/maintain, without any OO or other fancy code that could possibly work differently across platforms. years ago DBI was dropped as a database access layer from perl, as it was emerging that some bits worked differently on different platforms. a proprietary kind of DBI was established that produced same results across the platforms and the compatible DBs. quite different to SQL though. every command that accessed the database, ended up being a set of internal commands that a central API server processed and logged...be it the web interface, a staff interface, or data access through perl scripts.
quite clever really....hope this helps provoke some thought regards system structure.
the hardest line to type correctly is: stty erase ^H
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.