www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/09/27/19:16:24

From: "Smith A. Cat" <imbe AT primenet DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: perl for djgpp -- some hints
Date: 26 Sep 1997 18:19:00 -0700
Organization: Blue Square Laboratories
Lines: 277
Message-ID: <342C5FAC.15D@primenet.com>
MIME-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

This is a multi-part message in MIME format.

--------------7991EBB5316
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

After playing with Molnar Laszlo's excellent port of perl to djgpp i
would like to offer some of my experiences to others doing the same. 
without further ado...

--------------7991EBB5316
Content-Type: text/plain; charset=us-ascii; name="PERL5DOS.YES"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="PERL5DOS.YES"

# after setting environment variables PERLLIB and PAGER as necessary,
# since plain vanilla DOS uses the eight.three filenaming scheme,
# to get perl perldoc -h to work do this:

rename /text/shellwor /text/shellwor.pm
rename autoload  autoload.pm
rename /auto/text/parsewor/shellwor /auto/text/parsewor/shellwor.al

# now to get, say, "perldoc carp" to work, edit line 233 characters 38 and 39
# in PERLDOC.  change the "$$" to "xx" or "__" or something like that, and 
# now the doc system works!

# you will of course need to give the extension back to a number of library
# modules.  most of them get ".pm", some get ".pl".  i'm not sure that it
# would hurt anything to rename them all as ".pm".

# thanks again Molnar! this is an excellent port, best one for DOS yet!!

# phil

# here are the correct filenames as far as i could tell:
# (my directory structure is NOT the default structure for
# this perl distribution, but the FILENAMES are what you
# need to know, or want to know anyway...

there is a surprise at the bottom of this post...

c:\perl\lib\abbrev.pl
c:\perl\lib\anydbm_f.pm
c:\perl\lib\assert.pl
c:\perl\lib\autoload.pm
c:\perl\lib\autospli.pm
c:\perl\lib\autouse.pm
c:\perl\lib\benchmar.pm
c:\perl\lib\bigfloat.pl
c:\perl\lib\bigint.pl
c:\perl\lib\bigrat.pl
c:\perl\lib\blib.pm
c:\perl\lib\cacheout.pl
c:\perl\lib\carp.pm
c:\perl\lib\cgi.pm
c:\perl\lib\chat2.pl
c:\perl\lib\complete.pl
c:\perl\lib\config.pm
c:\perl\lib\constant.pm
c:\perl\lib\cpan.pm
c:\perl\lib\ctime.pl
c:\perl\lib\cwd.pm
c:\perl\lib\diagnost.pm
c:\perl\lib\dirhandl.pm
c:\perl\lib\dotsh.pl
c:\perl\lib\dumpvar.pl
c:\perl\lib\dynaload.pm
c:\perl\lib\english.pm
c:\perl\lib\env.pm
c:\perl\lib\exceptio.pl
c:\perl\lib\exporter.pm
c:\perl\lib\fastcwd.pl
c:\perl\lib\fcntl.pm
c:\perl\lib\filecach.pm
c:\perl\lib\filehand.pm
c:\perl\lib\find.pl
c:\perl\lib\findbin.pm
c:\perl\lib\finddept.pl
c:\perl\lib\flush.pl
c:\perl\lib\ftp.pl
c:\perl\lib\getcwd.pl
c:\perl\lib\getopt.pl
c:\perl\lib\getopts.pl
c:\perl\lib\hostname.pl
c:\perl\lib\importen.pl
c:\perl\lib\integer.pm
c:\perl\lib\io.pm
c:\perl\lib\less.pm
c:\perl\lib\lib.pm
c:\perl\lib\locale.pm
c:\perl\lib\look.pl
c:\perl\lib\newgetop.pl
c:\perl\lib\opcode.pm
c:\perl\lib\open2.pl
c:\perl\lib\open3.pl
c:\perl\lib\ops.pm
c:\perl\lib\overload.pm
c:\perl\lib\perl5db.pl
c:\perl\lib\pwd.pl
c:\perl\lib\safe.pm
c:\perl\lib\sdbm_fil.pm
c:\perl\lib\selectsa.pm
c:\perl\lib\selfload.pm
c:\perl\lib\shell.pm
c:\perl\lib\shellwor.pl
c:\perl\lib\sigtrap.pm
c:\perl\lib\stat.pl
c:\perl\lib\strict.pm
c:\perl\lib\subs.pm
c:\perl\lib\symbol.pm
c:\perl\lib\syslog.pl
c:\perl\lib\tainted.pl
c:\perl\lib\termcap.pl
c:\perl\lib\timeloca.pl
c:\perl\lib\universa.pm
c:\perl\lib\validate.pl
c:\perl\lib\vars.pm
c:\perl\lib\auto\dynaload\autospli
c:\perl\lib\auto\dynaload\dl_expan.al
c:\perl\lib\auto\dynaload\dl_findf.al
c:\perl\lib\auto\dynaload\dl_find_.al
c:\perl\lib\auto\dynaload\dynaload.a
c:\perl\lib\auto\dynaload\extralib
c:\perl\lib\auto\fcntl\extralib
c:\perl\lib\auto\fcntl\fcntl.a
c:\perl\lib\auto\io\extralib
c:\perl\lib\auto\io\io.a
c:\perl\lib\auto\opcode\extralib
c:\perl\lib\auto\opcode\opcode.a
c:\perl\lib\auto\sdbm\extralib
c:\perl\lib\auto\sdbm_fil\extralib
c:\perl\lib\auto\sdbm_fil\sdbm_fil.a
c:\perl\lib\auto\text\parsewor\autospli
c:\perl\lib\auto\text\parsewor\old_shel
c:\perl\lib\auto\text\parsewor\quotewor.al
c:\perl\lib\auto\text\parsewor\shellwor.al
c:\perl\lib\bundle\cpan.pm
c:\perl\lib\cgi\apache.pm
c:\perl\lib\cgi\carp.pm
c:\perl\lib\cgi\fast.pm
c:\perl\lib\cgi\push.pm
c:\perl\lib\cgi\switch.pm
c:\perl\lib\class\struct.pm
c:\perl\lib\cpan\firsttim
c:\perl\lib\cpan\nox.pm
c:\perl\lib\devel\selfstub.pm
c:\perl\lib\extutils\command.pm
c:\perl\lib\extutils\embed.pm
c:\perl\lib\extutils\install.pm
c:\perl\lib\extutils\liblist.pm
c:\perl\lib\extutils\makemake
c:\perl\lib\extutils\manifest.pm
c:\perl\lib\extutils\miniperl.pm
c:\perl\lib\extutils\mkbootst.pm
c:\perl\lib\extutils\mksymlis.pm
c:\perl\lib\extutils\mm_os2.pm
c:\perl\lib\extutils\mm_unix.pm
c:\perl\lib\extutils\mm_vms.pm
c:\perl\lib\extutils\mm_win32.pm
c:\perl\lib\extutils\testlib.pm
c:\perl\lib\extutils\typemap
c:\perl\lib\extutils\xsubpp
c:\perl\lib\file\basename.pm
c:\perl\lib\file\checktre.pm
c:\perl\lib\file\compare.pm
c:\perl\lib\file\copy.pm
c:\perl\lib\file\dosglob.pm
c:\perl\lib\file\find.pm
c:\perl\lib\file\path.pm
c:\perl\lib\file\stat.pm
c:\perl\lib\getopt\long.pm
c:\perl\lib\getopt\std.pm
c:\perl\lib\i18n\collate.pm
c:\perl\lib\io\file.pm
c:\perl\lib\io\handle.pm
c:\perl\lib\io\pipe.pm
c:\perl\lib\io\seekable.pm
c:\perl\lib\io\select.pm
c:\perl\lib\io\socket.pm
c:\perl\lib\ipc\open2.pm
c:\perl\lib\ipc\open3.pm
c:\perl\lib\math\bigfloat.pm
c:\perl\lib\math\bigint.pm
c:\perl\lib\math\complex.pm
c:\perl\lib\math\trig.pm
c:\perl\lib\net\hostent.pm
c:\perl\lib\net\netent.pm
c:\perl\lib\net\ping.pm
c:\perl\lib\net\protoent.pm
c:\perl\lib\net\servent.pm
c:\perl\lib\pod\function.pm
c:\perl\lib\pod\html.pm
c:\perl\lib\pod\text.pm
c:\perl\lib\search\dict.pm
c:\perl\lib\site\_exists
c:\perl\lib\sys\hostname.pm
c:\perl\lib\sys\syslog.pm
c:\perl\lib\term\cap.pm
c:\perl\lib\term\complete.pm
c:\perl\lib\term\readline.pm
c:\perl\lib\test\harness.pm
c:\perl\lib\text\abbrev.pm
c:\perl\lib\text\parsewor.pm
c:\perl\lib\text\soundex.pm
c:\perl\lib\text\tabs.pm
c:\perl\lib\text\wrap.pm
c:\perl\lib\tie\hash.pm
c:\perl\lib\tie\refhash.pm
c:\perl\lib\tie\scalar.pm
c:\perl\lib\tie\substrha.pm
c:\perl\lib\time\gmtime.pm
c:\perl\lib\time\local.pm
c:\perl\lib\time\localtim.pm
c:\perl\lib\time\tm.pm
c:\perl\lib\user\grent.pm
c:\perl\lib\user\pwent.pm

GOSH, you read all the way to here!
well then, here's perlmain.c, which you
can have fun with by putting the files in CORE
into the appropriate places (libperl.a in your
DJGPP libs directory, all the .h's into, say, 
/include/perl, and then you can compile perl, or
EMBED perl in your C programs.  see perlembed.pod
for further confusion...


/*
 * "The Road goes ever on and on, down from the door where it began."
 */


#include <perl/EXTERN.h>
#include <perl/perl.h>

#  define EXTERN_C extern

static void xs_init _((void)){};
static PerlInterpreter *my_perl;

int main(int argc, char **argv, char **env)

{
    int exitstatus;

    PERL_SYS_INIT(&argc,&argv);

    perl_init_i18nl10n(1); /* now there's an interesting function name */

    if (!do_undump) {
        my_perl = perl_alloc();
        if (!my_perl)
            exit(1);
        perl_construct( my_perl );
        perl_destruct_level = 0;
    }

    exitstatus = perl_parse( my_perl, xs_init, argc, argv, (char **) NULL );
    if (!exitstatus) {
        exitstatus = perl_run( my_perl );
    }

    perl_destruct( my_perl );
    perl_free( my_perl );

    PERL_SYS_TERM();

    exit( exitstatus );
}




--------------7991EBB5316--


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019