[Date Prev][Date Next][Thread Prev][Thread Next][Minivend by date
][Minivend by thread
]
perl 5.0005_2 Incompatibility?
****** message to minivend-users from "" <jpease@invnetpub.com> ******
Dear fellow MV's:
When upgrading from mv3.02 to mv3.11, at the "make test" command in the
installation dialog (long version with comments), we receive the following
message:
server.......ok 1
socket link..not ok 2
2 tests run -- 1/ failed.
We are trying to do the install under Solaris 5.7 and Perl 5.005_2. My ISP tells me:
<begin quote>
The problem is specific to perl version 5.005_2. Minivend is assuming something that is true for
5.004 and false for 5.005_02. I don't know whether the assumption is valid or not. In other
words, I don't know where the error lies: perl or minivend.
When I build Minivend with the older perl (identical to that
running on the current server), it has no problem. The
error log is different, indicating that the test catalog
has been built properly. The test then succeeds properly.
The problem is in the config() routine in Config.pm. There's
something very odd occurring in the line:
open(Vend::CONFIG, $C->{ConfigFile})
In the 5.005 version, this is reading the entire file
as a single line. This does not occur with the 5.004 version.
[Well, actually the while() loop below it is doing the
reading.]
The reason for this is that, in the 5.005 version, the input
separator (either $/ or $INPUT_RECORD_SEPARATOR) is - at that time -
undefined. I've no idea why this would be the case, but this variable is
manipulated in several places in the code.
I have found a difference between 5.005 and 5.004 with respect
to this variable. This *may* be relevent, but I don't see how
at this point.
Perl 5.004 has $/ set when BEGIN blocks are called. 5.005 does
not.
I've confirmed this in my own small test program which
examines the value of the variable within and after a
BEGIN block.
However, I cannot see how this is related to the problem, in
that minivend (even when I run the server by hand) never seems
to have this global variable set.
Ah...I have replicated this in my own code, although I confess
I've no idea why it works. But I can see now how this might
occur with Minivend. Apparently, the global value of $/ is
modified if a local($/) is modified from within a BEGIN
block.
One of these - perl or Minivend - must change.
As far as I can tell now, this is a known problem. See:
http://x9.dejanews.com/dnquery.xp?search=thread&svcclass=dnold&threaded=1
&ST=PS&CONTEXT=914548316.391643228&HIT_CONTEXT=914548316.391643228&HIT_NU
M=0&recnum=%3c6v304i$4m6$1@earth.superlink.net%3e%231/1
I may need to rebuild perl w/o multithread support (which
would be unfortunate).
<end quote>
Has anyone else run into this? Should we remove the multithread support? Does MV use it or
benefit from it? Any help would be greatly appreciated.
Regards,
Jonathan Pease-Editor
***************************************************
Where independent investors help each other succeed
Investors' Network http://www.investorsnet.com
Essential Tools For Serious Investors
-
To unsubscribe from the list, DO NOT REPLY to this message. Instead, send
email with 'UNSUBSCRIBE minivend-users' in the body to Majordomo@minivend.com.
Archive of past messages: http://www.minivend.com/minivend/minivend-list