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

Perl 5.8.0

0 views
Skip to first unread message

Paul Dhuse

unread,
Sep 13, 2006, 10:49:41 PM9/13/06
to
I've been trying to get the OS/2 port of Perl 5.8.0 (from hobbes) to
run, but I can't seem to get the PERLLIB_PREFIX set properly. I've
studied the documentation carefully and done what I think it says.

I've installed Perl on my F: drive, in a directory perl. Then I moved
the binaries out of the 5.8.0 directories into the perl/bin and
perl/lib.

I set the Path and Libpath accordingly, and add the following to my
config.sys:

set PERL_LIBBATH = L:/Perl/lib; F:\Perl\lib;
set PERL_SH_DIR = e:\local\bin
set PERLLIB_PREFIX = L:/Perl/lib; F:\Perl\lib;

as per the Readme and the perl.inf.

When I run the testperl.cmd in perl\bin I get the following:

You had set an environment variable PERL_SH_DIR. However,
though there is a directory with name 'e:/local/bin',
and there is a file with name 'e:/local/bin/sh.exe', I could not
execute it! This should not happen!
If this file is executable by hand, please report to
il...@math.ohio-state.edu.
Thanks.
Press <ENTER>: ====================================
Ouph, the most frequent problem is behind... Now testing Perl library
search.
Cannot find the core of Perl library. If you have it installed:
Consider getting help via
view perl PERLLIB_PREFIX
or in whatever way you like the Perl documentation accessed, say, via
perldoc perlos2
man, acrobat, netscape, lynx, GNU info, TeX, reading REAME.os2,
reading
POD files, and so on.
Skipping further tests now...
Tests finished. Press <ENTER>:

Any suggestions?


Robert Berghaus

unread,
Sep 14, 2006, 6:36:10 AM9/14/06
to
Hi Paul

Paul Dhuse schrieb:


> I've been trying to get the OS/2 port of Perl 5.8.0 (from hobbes) to
> run, but I can't seem to get the PERLLIB_PREFIX set properly. I've
> studied the documentation carefully and done what I think it says.
>
> I've installed Perl on my F: drive, in a directory perl. Then I moved
> the binaries out of the 5.8.0 directories into the perl/bin and
> perl/lib.
>
> I set the Path and Libpath accordingly, and add the following to my
> config.sys:
>
> set PERL_LIBBATH = L:/Perl/lib; F:\Perl\lib;
> set PERL_SH_DIR = e:\local\bin
> set PERLLIB_PREFIX = L:/Perl/lib; F:\Perl\lib;
>

PERL_BADLANG=0
PERLLIB_PREFIX=L:/Perl/lib E:/Apps/Entwick/Perl-5.8/lib
PERL_LIBPATH=L:/Perl/lib E:\Apps\Entwick\perl-5.8\lib
PERL_SH_DIR=E:\Apps\Entwick\Perl-5.8\bin

This is from my PC and it works fine.

[...]

best regards
Robert

John Small

unread,
Sep 14, 2006, 7:25:02 AM9/14/06
to
On Thu, 14 Sep 2006 02:49:41 UTC, "Paul Dhuse" <pdh...@pacbell.net>
wrote:

> I've been trying to get the OS/2 port of Perl 5.8.0 (from hobbes) to
> run, but I can't seem to get the PERLLIB_PREFIX set properly. I've
> studied the documentation carefully and done what I think it says.
>
> I've installed Perl on my F: drive, in a directory perl. Then I moved
> the binaries out of the 5.8.0 directories into the perl/bin and
> perl/lib.
>
> I set the Path and Libpath accordingly, and add the following to my
> config.sys:
>
> set PERL_LIBBATH = L:/Perl/lib; F:\Perl\lib;
> set PERL_SH_DIR = e:\local\bin
> set PERLLIB_PREFIX = L:/Perl/lib; F:\Perl\lib;
>
> as per the Readme and the perl.inf.
>
> When I run the testperl.cmd in perl\bin I get the following:
>
> You had set an environment variable PERL_SH_DIR. However,
> though there is a directory with name 'e:/local/bin',
> and there is a file with name 'e:/local/bin/sh.exe', I could not
> execute it! This should not happen!

I can't help you with PERL_SH_DIR because I get the same message.

But there should be no spaces in the other two environment vars.


> set PERL_LIBBATH = L:/Perl/lib; F:\Perl\lib;

should be:


set PERL_LIBBATH = L:/Perl/lib;F:\Perl\lib;

> set PERLLIB_PREFIX = L:/Perl/lib; F:\Perl\lib;

should be:


set PERLLIB_PREFIX = L:/Perl/lib;F:\Perl\lib;

--

John Small

(remove the z's for email address)

Steven Levine

unread,
Sep 15, 2006, 2:26:10 AM9/15/06
to
In <dkNJNOv6RJDD-pn2-2ndm0iD959Rb@localhost>, on 09/14/2006
at 02:49 AM, "Paul Dhuse" <pdh...@pacbell.net> said:

Hi,

>set PERL_LIBBATH = L:/Perl/lib; F:\Perl\lib;
>set PERL_SH_DIR = e:\local\bin
>set PERLLIB_PREFIX = L:/Perl/lib; F:\Perl\lib;

As others have noted, it is the spaces. Remove them and most likely
everything will start to work.

No one, hopefully, has ever claimed that cmd.exe is not brain dead.

[D:\TMP]set X = zzzz

[D:\TMP]echo "%X%"
"%X%"

Makes it look the set failed. Well, it did not. It just did not define
the variable or value you think it did.

[D:\TMP]set | grep "^X"
X = zzzz

Spaces are legal in environment variable names and leading spaces are
significant in the values. There's no way to reference these kinds of
variables with cmd.exe, but 4os2 has no problems doing so

[D:\TMP]set X = zzzz

[D:\TMP]echo "%[X ]"
" zzzz"

You might want to check your other set statements for these kinds of
oddities.

Steven

--
--------------------------------------------------------------------------------------------
Steven Levine <ste...@earthlink.bogus.net> MR2/ICE 2.67 #10183
Warp/eCS/DIY/14.103a_W4 www.scoug.com irc.fyrelizard.com #scoug (Wed 7pm PST)
--------------------------------------------------------------------------------------------

John Small

unread,
Sep 15, 2006, 6:52:13 AM9/15/06
to
On Thu, 14 Sep 2006 11:25:02 UTC, "John Small" <zjsm...@toast.net>
wrote:

> >
> > You had set an environment variable PERL_SH_DIR. However,
> > though there is a directory with name 'e:/local/bin',
> > and there is a file with name 'e:/local/bin/sh.exe', I could not
> > execute it! This should not happen!
>
> I can't help you with PERL_SH_DIR because I get the same message.

I have now figured out this messsage, too. Apparently Perl requires a
certain version of SH.EXE. The archive PERL_SH.ZIP includes a version
of SH.EXE that works just extract that version and, if it is not the
first/only SH.EXE, point to it with PERL_SH_DIR.

My "old" SH.EXE responded to "SH --version" with "GNU bash, version
2.05a.0(1)-release (i386-ibm-os2)". The SH.EXE from PERL_SH.ZIP does
not respond to "SH --version".

Message has been deleted

Paul Dhuse

unread,
Sep 15, 2006, 11:51:07 PM9/15/06
to
Thanks. That solved one problem.

On Fri, 15 Sep 2006 10:52:13 UTC, "John Small" <zjsm...@toast.net>

Paul Dhuse

unread,
Sep 15, 2006, 11:55:10 PM9/15/06
to
I didn't see that one PERL_LIBBATH), but that wasn't the problem.

I have tried it with and without spaces to no avail.

What does it mean by "the core of the perl library?

In f:\perl\lib are:

2-23-03 13:12 <DIR> 0 5.8.0
2-23-03 13:12 <DIR> 0 site_perl
2-16-03 20:00 1,569,758 0 perl.a
2-16-03 18:28 103,936 0 perl.lib
2-16-03 18:28 720,198 49 perlB12E.dll

And all the rest are in f:\perl\lib\5.8.0

On Fri, 15 Sep 2006 16:44:47 UTC, "Peter Weilbacher"
<news...@weilbacher.org> wrote:

> On Fri, 15 Sep 2006 06:26:10 UTC, Steven Levine wrote:
>
> > >set PERL_LIBBATH = L:/Perl/lib; F:\Perl\lib;
> > >set PERL_SH_DIR = e:\local\bin
> > >set PERLLIB_PREFIX = L:/Perl/lib; F:\Perl\lib;
> >
> > As others have noted, it is the spaces. Remove them and most likely
> > everything will start to work.
>

> Additionally, I have never heard of a LIB_B_ATH before. I guess that
> LIBBATH line can be removed completely...


--

Steven Levine

unread,
Sep 16, 2006, 2:06:05 AM9/16/06
to
In <dkNJNOv6RJDD-pn2-I9VpNdtGjjyj@localhost>, on 09/16/2006

at 03:55 AM, "Paul Dhuse" <pdh...@pacbell.net> said:

>I have tried it with and without spaces to no avail.

You need to post exactly what you have now and the error messages you get.
I don't know about the others, but my mind reading skills are minimal and
I'm sure you make lots of changes since you last posted this information.

Be sure to cut and paste. Don't type it in. Include the results of perl
--version.

>What does it mean by "the core of the perl library?

For 5.8.0, perl.exe needs to be able to find perlb12e.dll. This is the
only statically linked DLL. After that perl is smart enough to find
everything else it needs from PERLLIB_PREFIX and the settings in the
various config.pm files.

In my case, this means the perl*.exes live in \usr\bin and perlb12e.dll
lives in \usr\dll because these are in PATH and LIBPATH respectively.
Everything else lives in the \perl tree. None of the \Perl directories
are in PATH or LIBPATH.

>In f:\perl\lib are:

>2-23-03 13:12 <DIR> 0 5.8.0
>2-23-03 13:12 <DIR> 0 site_perl
>2-16-03 20:00 1,569,758 0 perl.a
>2-16-03 18:28 103,936 0 perl.lib
>2-16-03 18:28 720,198 49 perlB12E.dll

That does not look right.

I recommend you reinstall and leave the files in their original locations
and adjust PERLLIB_PREFIX to match. It would not help to show you my
directory content because it is far from pristine. I've made many visits
to CPAN.

Paul Dhuse

unread,
Sep 16, 2006, 5:35:40 PM9/16/06
to
On Sat, 16 Sep 2006 06:06:05 UTC, Steven Levine
<ste...@earthlink.bogus.net> wrote:

> In <dkNJNOv6RJDD-pn2-I9VpNdtGjjyj@localhost>, on 09/16/2006
> at 03:55 AM, "Paul Dhuse" <pdh...@pacbell.net> said:
>
> >I have tried it with and without spaces to no avail.
>
> You need to post exactly what you have now and the error messages you get.
> I don't know about the others, but my mind reading skills are minimal and
> I'm sure you make lots of changes since you last posted this information.


REM ------------------------------------------------------------- PERL
install
set PERL_BADLANG=0
set PERLLIB_PREFIX=L:/Perl/lib;F:/Perl/lib/5.8.0;
set PERL_LIBPATH=L:/Perl/lib;F:\Perl\lib\5.8.0;
set PERL_SH_DIR=f:/perl/bin

Output of testperl.cmd (the part where it fails:

Ouph, the most frequent problem is behind... Now testing Perl library
search.
Cannot find the core of Perl library. If you have it installed:
Consider getting help via
view perl PERLLIB_PREFIX
or in whatever way you like the Perl documentation accessed, say, via
perldoc perlos2
man, acrobat, netscape, lynx, GNU info, TeX, reading REAME.os2,
reading
POD files, and so on.
Skipping further tests now...

> Be sure to cut and paste. Don't type it in. Include the results of perl


> --version.
>
> >What does it mean by "the core of the perl library?
>
> For 5.8.0, perl.exe needs to be able to find perlb12e.dll. This is the
> only statically linked DLL. After that perl is smart enough to find
> everything else it needs from PERLLIB_PREFIX and the settings in the
> various config.pm files.
>
> In my case, this means the perl*.exes live in \usr\bin and perlb12e.dll
> lives in \usr\dll because these are in PATH and LIBPATH respectively.
> Everything else lives in the \perl tree. None of the \Perl directories
> are in PATH or LIBPATH.

Let me try this. I added f:\perl\bin\5.8.0 and f:\perl\lib\5.8.0 to
PATH and LIBPATH, respectively.

> >In f:\perl\lib are:
>
> >2-23-03 13:12 <DIR> 0 5.8.0
> >2-23-03 13:12 <DIR> 0 site_perl
> >2-16-03 20:00 1,569,758 0 perl.a
> >2-16-03 18:28 103,936 0 perl.lib
> >2-16-03 18:28 720,198 49 perlB12E.dll
>
> That does not look right.

The files are exactly as unzip-ed from the archive files on hobbes, so
they're in their original locations.

John Small

unread,
Sep 17, 2006, 7:02:46 AM9/17/06
to
On Sat, 16 Sep 2006 21:35:40 UTC, "Paul Dhuse" <pdh...@pacbell.net>
wrote:

> set PERLLIB_PREFIX=L:/Perl/lib;F:/Perl/lib/5.8.0;

Try:

set PERLLIB_PREFIX=L:/Perl/lib;F:\Perl\lib\5.8.0;

Note the slahshes before the ';' and the backslashes afterwards.

Steven Levine

unread,
Sep 17, 2006, 5:14:08 PM9/17/06
to
In <dkNJNOv6RJDD-pn2-do0pRdNTVCvV@localhost>, on 09/16/2006
at 09:35 PM, "Paul Dhuse" <pdh...@pacbell.net> said:

Hi Paul,

>set PERLLIB_PREFIX=L:/Perl/lib;F:/Perl/lib/5.8.0;

Change this to

SET PERLLIB_PREFIX=l:/perl/lib;F:\PERL\LIB

Note the lack of a version number in the path to the right of the
semi-colon. Note the lack of a trailing semicolon. Note the case of the
path to the left of the semi-colon. Why do you assume that you can change
the syntax at will? Perhaps you can, but without looking at the code, you
will not know. If you can't all you do it cause unnecessary failures.

>set PERL_LIBPATH=L:/Perl/lib;F:\Perl\lib\5.8.0;

Lose this. Best I can tell it is just garbage. There is certainly no
entry I can find for this in the the docs or the binaries other than in
Henry's readme and I this is an error in the readme. I was wondering
where you came up with this.

>Let me try this. I added f:\perl\bin\5.8.0 and f:\perl\lib\5.8.0 to
>PATH and LIBPATH, respectively.

You don't have it quite right yet. Based on the content of
perl-5.8.0-bin.zip, PATH needs to be

set PATH=f:\perl\bin\5.8.0;...

so that you can find perl.exe from the command line. This is OK.

LIBPATH needs to be

LIBPATH=.;f:\perl\lib;...

so that perl.exe can find perlB12E.dll. You need to correct your
LIBPATH. This is just how OS/2 works.

Note that you will save your self a lot of rebooting by using BEGINLIBPATH
and other set statements to adjust the settings until you understand what
the correct values must be.

Paul Dhuse

unread,
Sep 20, 2006, 12:21:20 AM9/20/06
to
Thanks for your help. It turns out that it was the extra 5.8.0 in the
PERLLIB_PREFIX that I had. The docs weren't clear that it assumed
that part of the directory path. I found it using the

perl -le "print join $/, @INC"

when I got curious about where to find the contents of @INC, and
finally went through every reference to @INC in the perl.inf file
included in the packages.

--

0 new messages