| 1 | NAME
 | 
|---|
| 2 |         PerlCE - perl for Windows CE
 | 
|---|
| 3 | 
 | 
|---|
| 4 | DESCRIPTION
 | 
|---|
| 5 |         PerlCE is a simple port of perl to Windows CE. The program
 | 
|---|
| 6 |         is currently linked with a simple console window, so it also
 | 
|---|
| 7 |         works on non-hpc devices.
 | 
|---|
| 8 | 
 | 
|---|
| 9 |         The simple stdio implementation creates the files stdin.txt,
 | 
|---|
| 10 |         stdout.txt and stderr.txt, so you might examine them if your
 | 
|---|
| 11 |         console has only a liminted number of cols.
 | 
|---|
| 12 | 
 | 
|---|
| 13 |         When exitcode is non-zero, a message box appears, otherwise the
 | 
|---|
| 14 |         console closes, so you might have to catch an exit with
 | 
|---|
| 15 |         status 0 in your program to see any output.
 | 
|---|
| 16 | 
 | 
|---|
| 17 |         stdout/stderr now go into the files /perl-stdout.txt and
 | 
|---|
| 18 |         /perl-stderr.txt.
 | 
|---|
| 19 | 
 | 
|---|
| 20 | LIMITATIONS
 | 
|---|
| 21 |         No fork(), pipe(), popen() etc.
 | 
|---|
| 22 | 
 | 
|---|
| 23 | ENVIRONMENT
 | 
|---|
| 24 |         All environment vars must be stored in HKLM\Environment as
 | 
|---|
| 25 |         strings. They are read at process startup.
 | 
|---|
| 26 | 
 | 
|---|
| 27 |         PERL5LIB        - Usual perl lib path (semi-list).
 | 
|---|
| 28 |         PATH            - Semi-list for executables.
 | 
|---|
| 29 |         TMP             - Tempdir.
 | 
|---|
| 30 |         UNIXROOTPATH    - Root for accessing some special files,
 | 
|---|
| 31 |                           i.e. /dev/null, /etc/services.
 | 
|---|
| 32 |         ROWS/COLS       - Rows/cols for console.
 | 
|---|
| 33 |         HOME            - Home directory.
 | 
|---|
| 34 |         CONSOLEFONTSIZE - Size for console font.
 | 
|---|
| 35 | 
 | 
|---|
| 36 |         You can set these with cereg.exe, a (remote) registry editor
 | 
|---|
| 37 |         or via the PerlIDE.
 | 
|---|
| 38 | 
 | 
|---|
| 39 | REGISTRY
 | 
|---|
| 40 |         To start perl by clicking on a perl source file, you have
 | 
|---|
| 41 |         to make the according entries in HKCR (see wince-reg.bat).
 | 
|---|
| 42 |         cereg.exe (which must be executed on a desktop pc with
 | 
|---|
| 43 |         ActiveSync) is reported not to work on some devices.
 | 
|---|
| 44 |         You have to create the registry entries by hand using a 
 | 
|---|
| 45 |         registry editor.
 | 
|---|
| 46 | 
 | 
|---|
| 47 | FILES
 | 
|---|
| 48 |         $(UNIXROOTPATH)/dev/null - nul simulation, needed for perl -V
 | 
|---|
| 49 |         $(UNIXROOTPATH)/etc/services - services file
 | 
|---|
| 50 | 
 | 
|---|
| 51 |         /perl-stdin.txt
 | 
|---|
| 52 |         /perl-stdout.txt
 | 
|---|
| 53 |         /perl-stderr.txt   
 | 
|---|
| 54 | 
 | 
|---|
| 55 | PERLFILES 
 | 
|---|
| 56 |         Only a limited set of perl files is provided in the
 | 
|---|
| 57 |         distribution archiv. You have to copy the original PERL5LIB
 | 
|---|
| 58 |         files from a perl for win32 installation and put the
 | 
|---|
| 59 |         distributed files into the right directories.
 | 
|---|
| 60 | 
 | 
|---|
| 61 |         The following files are a reasonable minimum if you want to do
 | 
|---|
| 62 |         some socket stuff:
 | 
|---|
| 63 | 
 | 
|---|
| 64 |         ./auto
 | 
|---|
| 65 |         ./auto/DynaLoader
 | 
|---|
| 66 |         ./auto/DynaLoader/autosplit.ix
 | 
|---|
| 67 |         ./auto/DynaLoader/dl_expandspec.al
 | 
|---|
| 68 |         ./auto/DynaLoader/dl_findfile.al
 | 
|---|
| 69 |         ./auto/DynaLoader/dl_find_symbol_anywhere.al
 | 
|---|
| 70 |         ./auto/IO
 | 
|---|
| 71 |         ./auto/IO/IO.bs
 | 
|---|
| 72 |         ./auto/IO/IO.dll
 | 
|---|
| 73 |         ./auto/Socket
 | 
|---|
| 74 |         ./auto/Socket/Socket.bs
 | 
|---|
| 75 |         ./auto/Socket/Socket.dll
 | 
|---|
| 76 |         ./Carp
 | 
|---|
| 77 |         ./Carp/Heavy.pm
 | 
|---|
| 78 |         ./Carp.pm
 | 
|---|
| 79 |         ./Config.pm
 | 
|---|
| 80 |         ./DynaLoader.pm
 | 
|---|
| 81 |         ./Exporter
 | 
|---|
| 82 |         ./Exporter/Heavy.pm
 | 
|---|
| 83 |         ./Exporter.pm
 | 
|---|
| 84 |         ./IO
 | 
|---|
| 85 |         ./IO/File.pm
 | 
|---|
| 86 |         ./IO/Handle.pm
 | 
|---|
| 87 |         ./IO/Socket.pm
 | 
|---|
| 88 |         ./IO.pm
 | 
|---|
| 89 |         ./SelectSaver.pm
 | 
|---|
| 90 |         ./Socket.pm
 | 
|---|
| 91 |         ./strict.pm
 | 
|---|
| 92 |         ./Symbol.pm
 | 
|---|
| 93 |         ./warnings
 | 
|---|
| 94 |         ./warnings/register.pm
 | 
|---|
| 95 |         ./warnings.pm
 | 
|---|
| 96 |         ./XSLoader.pm
 | 
|---|
| 97 | 
 | 
|---|
| 98 | XS
 | 
|---|
| 99 |         The following Win32-Methods are built-in:
 | 
|---|
| 100 | 
 | 
|---|
| 101 |         newXS("Win32::GetCwd", w32_GetCwd, file);
 | 
|---|
| 102 |         newXS("Win32::SetCwd", w32_SetCwd, file);
 | 
|---|
| 103 |         newXS("Win32::GetTickCount", w32_GetTickCount, file);
 | 
|---|
| 104 |         newXS("Win32::GetOSVersion", w32_GetOSVersion, file);
 | 
|---|
| 105 |         newXS("Win32::IsWinNT", w32_IsWinNT, file);
 | 
|---|
| 106 |         newXS("Win32::IsWin95", w32_IsWin95, file);
 | 
|---|
| 107 |         newXS("Win32::IsWinCE", w32_IsWinCE, file);
 | 
|---|
| 108 |         newXS("Win32::CopyFile", w32_CopyFile, file);
 | 
|---|
| 109 |         newXS("Win32::Sleep", w32_Sleep, file);
 | 
|---|
| 110 |         newXS("Win32::MessageBox", w32_MessageBox, file);
 | 
|---|
| 111 |         newXS("Win32::GetPowerStatus", w32_GetPowerStatus, file);
 | 
|---|
| 112 |         newXS("Win32::GetOemInfo", w32_GetOemInfo, file);
 | 
|---|
| 113 |         newXS("Win32::ShellEx", w32_ShellEx, file);
 | 
|---|
| 114 | 
 | 
|---|
| 115 | DLLS
 | 
|---|
| 116 |         In the newest version, my celib.dll is needed. Some XS dlls
 | 
|---|
| 117 |         might be needed. Currently, Socket and IO are provided.
 | 
|---|
| 118 | 
 | 
|---|
| 119 | BUGS
 | 
|---|
| 120 |         Opening files for read-write is currently not supported if
 | 
|---|
| 121 |         they use stdio (normal perl file handles).
 | 
|---|
| 122 | 
 | 
|---|
| 123 |         If you find bugs or if it does not work at all on your
 | 
|---|
| 124 |         device, send mail to the address below. Please report
 | 
|---|
| 125 |         the details of your device (processor, ceversion, 
 | 
|---|
| 126 |         devicetype (hpc/palm/pocket)) and the date of the downloaded
 | 
|---|
| 127 |         files. 
 | 
|---|
| 128 | 
 | 
|---|
| 129 |         I currently have only a Compaq/MIPS HPC, a Jornada/SH3 HPC and
 | 
|---|
| 130 |         a Jornada/ARM HPC, so I can only test on these devices and
 | 
|---|
| 131 |         under the Emulators.
 | 
|---|
| 132 | 
 | 
|---|
| 133 | INSTALLATION
 | 
|---|
| 134 |         This is only a suggestion...
 | 
|---|
| 135 | 
 | 
|---|
| 136 |         * Unpack the tar archive on your desktop.
 | 
|---|
| 137 |         * Create directories /bin, /lib/perl5, /home, /dev and /etc,
 | 
|---|
| 138 |           possibly on a CF card with the path to the card 
 | 
|---|
| 139 |           prepended (i.e. /memcard/bin etc).
 | 
|---|
| 140 |         * Copy perl.exe, perl56.dll and celib.dll from your desktop to
 | 
|---|
| 141 |           /bin. The dlls can also be copied to your /windows
 | 
|---|
| 142 |           directory, but if you use a CF card, you might want to store
 | 
|---|
| 143 |           them there.
 | 
|---|
| 144 |         * Copy the other DLLs to the corresponding auto directory.
 | 
|---|
| 145 |         * Copy any needed perl module-files to /lib/perl5.
 | 
|---|
| 146 |         * Create the registry entries.
 | 
|---|
| 147 |         * If you need tcp service-name resolution, create
 | 
|---|
| 148 |           the file "services" in /etc and put int the entries you need.
 | 
|---|
| 149 | 
 | 
|---|
| 150 |         * Under WINCE200, all dlls must be copied to the windows
 | 
|---|
| 151 |           directory.
 | 
|---|
| 152 | 
 | 
|---|
| 153 | MISC
 | 
|---|
| 154 |         If you think a certain XS module should be ported, send
 | 
|---|
| 155 |         me mail and explain why.
 | 
|---|
| 156 | 
 | 
|---|
| 157 |         If you write useful scripts for perlce, please send me
 | 
|---|
| 158 |         a copy.
 | 
|---|
| 159 | 
 | 
|---|
| 160 | TERMINAL
 | 
|---|
| 161 |         There are simple terminal control sequences now. See the
 | 
|---|
| 162 |         readme file that comes with the console program.
 | 
|---|
| 163 | 
 | 
|---|
| 164 | AUTHOR
 | 
|---|
| 165 |         Rainer Keuchel <coyxc@rainer-keuchel.de> 2001
 | 
|---|
| 166 | 
 | 
|---|