Hi,From: Jeff 'japhy' Pinyan <[EMAIL PROTECTED]> To: Rajarshi Das <[EMAIL PROTECTED]> CC: [EMAIL PROTECTED], beginners@perl.org Subject: Re: modify PVA.pl (z/OS and perl-5.8.6) Date: Fri, 13 May 2005 07:30:44 -0400 (EDT)
On May 13, Rajarshi Das said:
PVA.pl (PVA stands for Property Value Aliases) is a runtime file for unicode which is generated by the
mktables utility using the file lib/unicore/PropValueAliases.txt.
One of the properties in PropValueAliases.txt is EastAsianWidth for which 'A' is a value which stands for 'Ambiguous'.
The file PVA.pl (which is also in lib/unicore) contains a PVA_abbr_map. This contains a sequence of property aliases ('ea' for EastAsianWidth, 'jt' for JoiningType and so on) and their corresponding values.
The test that I run uses a hash (%utf8::PVA_abbr_map) and reads each of these property values in sequence (as it is listed under PVA_abbr_map in PVA.pl ).
But perl -d <testname> iterates through a couple of property names (and their values) but exits before the property 'ea' is picked up from PVA_abbr_map.
I changed the order of propertynames in PVA_abbr_map (in PVA.pl), but perl -d still continues to follow the original sequence of property names and exits before 'ea' is used.
Please let me know if some other details are required.
Hi, I'm the author of changes to Perl's Unicode system that ended up creating the hashes you're talking about.
First of all, it's very difficult to determine the order in which keys will be returned from a hash, because you'd have to calculate Perl's hashing algorithm for each key in order that you placed them in the hash, figure out when the hash gets re-optimized, etc.
Second, do you know how this test is failing to recognize the 'ea' abbreviation?
I might be able to help, but we'd have to see some sample code that demonstrates the problem.
Have attached a file which contains a snapshot of the test that I run.on z/OS, this test runs (perl -d) with $p set to 'ea' in the first iteration (the gc_sc case doesnt run because of the test) but fails. To diagnose, I ran the same thing (perl -d) on a linux box, where however, the test runs in a different order (jt (c,d,r,u,C,D,R,U), dt ( can, com, enc)) and then the debugger exits before $p can be set to 'ea'.
I tried to modify PVA.pl (the sequence of the properties in PVA_abbr_map) manually on the linux box to to see if perl ran with this new sequence, so that the 'ea' case would be picked up before perl -d had a chance to exit.
Unfortunately, it followed the same original sequence.
1) Am I allowed to modify PVA_abbr_map in PVA.pl and reorder the properties to be picked up when perl reruns (in the above context) ?
2) the test case attached fails for the case where $p = EastAsianWidth and $c = A on z/OS (with perl-5.8.6). Any thoughts on why this might be happening ?
Thanks a ton, Rajarshi.
-- Jeff "japhy" Pinyan % How can we ever be the sold short or RPI Acacia Brother #734 % the cheated, we who for every service http://japhy.perlmonk.org/ % have long ago been overpaid? http://www.perlmonks.org/ % -- Meister Eckhart
_________________________________________________________________
Job hunting? http://ads.mediaturf.net/event.ng/Type=click&FlightID=18377&AdID=47843&TargetID=10169&Targets=10169&Values=414,1264,1756,3035&Redirect=http:%2F%2Fwww.timesjobs.com%2FMSN%2F Get the right one! Log on to www.timesjobs.com TODAY
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>