Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX 11i Version 3 Release Notes: HP 9000 and HP Integrity Servers > Chapter 10 Libraries and Programming

Perl

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

Perl is a high-level programming language created and enhanced by the Open Source community. Perl takes the best features from other languages: C, awk, sed, sh, and BASIC, among others, and at least a dozen other tools and languages.

The version for HP-UX 11i v3 is 5.8.8 build 817.1.

Summary of Change

What’s New for Customers Migrating from HP-UX 11i v1 September 2005?

  • chdir, chmod and chown can now work on filehandles as well as filenames, if the system supports respectively fchdir, fchmod and fchown.

  • h2xs implements new option --use-xsloader to force use of XSLoader even in backwards compatible modules. Any enums with negative values are now skipped.\

  • Perlivp implements new option -a and will not check for *.ph files by default any more. Use the -a option to run all tests.

  • Some of the modules are upgraded to latest revisions.

  • Some of the bug fixes done in this release are:

    • no warnings category works correctly with -w

    • Remove over-optimization

    • sprintf()fixes

    • Debugger and Unicode slowdown

  • Provides large hostname/uname support.

  • The Perl interpreter is built to allow the use of a site customization script.

  • Config.pm is now about 3K rather than 32K, with the infrequently used code and %Config values loaded on demand.

  • There has been a fair amount of refactoring of the C source code, partly to make it tidier and more maintainable.

  • ${^UTF8LOCALE} has been added to give Perl space access to PL_utf8 locale.

  • The size of the arenas used to allocate SV heads and most SV bodies can now be changed at compile time.

  • From HP-UX 11i v3 on all applications embedding Perl will behave as if Perl were compiled with -DPERL_USE_SAFE_PUTENV.

  • Most C source files now have comments at the top explaining their purpose, which should help anyone wishing to get an overview of the implementation.

  • The debugger can now emulate stepping backwards, by restarting and rerunning all but the last command from a saved command history. It (lib/perl5db.pl) can now save all debugger commands for sourcing later, and can display the parent inheritance tree of a given class.

What’s New for Customers Migrating from HP-UX 11i v2 June 2006?

See “What’s New for Customers Migrating from HP-UX 11i v1 September 2005?”

Impact

There are no impacts other than those described previously.

Compatibility

Perl 5.8 is not binary compatible with earlier releases of Perl for XS modules. These modules have to be recompiled. (Pure Perl modules should continue to work.)

The major reason for the discontinuity is the new IO architecture called PerlIO. PerlIO is the default configuration because without it many new features of Perl 5.8 cannot be used. In other words, you just have to recompile your modules containing XS code.

The new safe signals implementation postpones handling of signals until it’s safe (in between the execution of low level opcodes). This change may have surprising side effects because signals no longer interrupt Perl instantly.

Performance

  • Weak reference creation is now O(1) rather than O(n). Weak reference deletion remains O(n), but if deletion only happens at program exit, it may be skipped completely.

  • There are improvements to reduce the memory usage of sort and to speed up some cases.

  • As much data as possible in the C source files is marked as static, to increase the proportion of the executable file that the operating system can share between process and thus reduce real memory usage on multi-user systems.

  • The internal pointer mapping hash used during ithreads cloning now uses an arena for memory allocation. In tests this reduced ithreads cloning time by about 10%.

  • reverse sort ... is now optimized to sort in reverse, avoiding the generation of a temporary intermediate list.

  • for (reverse @foo) now iterates in reverse, avoiding the generation of a temporary reversed list.

Obsolescence

Not applicable.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2006-2007 Hewlett-Packard Development Company, L.P.