Your SlideShare is downloading. ×
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference

8,058

Published on

Learn about the IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference.This document presents the information you need to set up and use IBM Ported Tools for z/OS: Perl for z/OS …

Learn about the IBM Ported Tools for z/OS: Perl for z/OS Feature User's Guide and Reference.This document presents the information you need to set up and use IBM Ported Tools for z/OS: Perl for z/OS Feature. This document is for the system programmers who run a z/OS system with z/OS UNIX System Services (z/OS UNIX), and for their users who use IBM Ported Tools for z/OS: Perl for z/OS Feature. On other open systems, some system programmer tasks may be done by an administrator. For more information on IBM System z, visit http://ibm.co/PNo9Cb.

Visit http://on.fb.me/LT4gdu to 'Like' the official Facebook page of IBM India Smarter Computing.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,058
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. z/OSIBM Ported Tools for z/OS: Perl for z/OSFeature Users Guide and Reference SA23-1347-00
  • 2. z/OSIBM Ported Tools for z/OS: Perl for z/OSFeature Users Guide and Reference SA23-1347-00
  • 3. Note Before using this information and the product it supports, be sure to read the general information under “Notices” on page 227.First Edition, June 2006This edition applies to Version 1 Release 1 of IBM Ported Tools for z/OS: Perl for z/OS Feature (5655-M23) and toall subsequent releases and modifications until otherwise indicated in new editions.IBM welcomes your comments. A form for readers comments may be provided at the back of this document, or youmay address your comments to the following address: International Business Machines Corporation Department 55JA, Mail Station P384 2455 South Road Poughkeepsie, NY 12601-5400 United States of America FAX (United States & Canada): 1+845+432-9405 FAX (Other Countries): Your International Access Code +1+845+432-9405 IBMLink (United States customers only): IBMUSM10(MHVRCFS) Internet e-mail: mhvrcfs@us.ibm.com World Wide Web: http://www.ibm.com/systems/z/os/zos/webqs.htmlIf you would like a reply, be sure to include your name, address, telephone number, or FAX number.Make sure to include the following in your comment or note:v Title and order number of this documentv Page number or topic related to your commentWhen you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in anyway it believes appropriate without incurring any obligation to you.© Copyright IBM Corporation 2006.US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contractwith IBM Corp.
  • 4. Contents Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . v About this document . . . . . . . . . . . . . . . . . . . . . . vii Who should use this document? . . . . . . . . . . . . . . . . . . vii Where to find more information . . . . . . . . . . . . . . . . . . . vii Softcopy publications . . . . . . . . . . . . . . . . . . . . . . vii IBM Systems Center publications . . . . . . . . . . . . . . . . . vii Using LookAt to look up message explanations . . . . . . . . . . . . viii Using IBM Health Checker for z/OS . . . . . . . . . . . . . . . . viii Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . 1 Finding more information. . . . . . . . . . . . . . . . . . . . . . 1 Supported utilities . . . . . . . . . . . . . . . . . . . . . . . . 1 Restrictions and limitations . . . . . . . . . . . . . . . . . . . . . 2 Chapter 2. Installing Perl for z/OS . . . . . . . . . . . . . . . . . 3 Pre-installation planning . . . . . . . . . . . . . . . . . . . . . . 3 File-System Allocation . . . . . . . . . . . . . . . . . . . . . . 3 Files and directory structure . . . . . . . . . . . . . . . . . . . 3 Migrating from open source versions of Perl . . . . . . . . . . . . . 3 Post-installation setup . . . . . . . . . . . . . . . . . . . . . . . 6 Add references to libperl.so. . . . . . . . . . . . . . . . . . . . 6 Add symbolic link for man page . . . . . . . . . . . . . . . . . . 8 Add symbolic link to perl in /usr/bin . . . . . . . . . . . . . . . . . 8 Add path of perl to PATH environment variable . . . . . . . . . . . . 8 Chapter 3. Installing user modules . . . . . . . 9 . . . . . . . . . . Before you Begin . . . . . . . . . . . . . . 9 . . . . . . . . . . Insure you have the necessary access . . . . . 9 . . . . . . . . . . Acquire required utilities . . . . . . . . . . . 9 . . . . . . . . . . Install prerequisite modules . . . . . . . . . . 9 . . . . . . . . . . Steps for installing user modules . . . . . . . . . . . . . . . . . . 10 Chapter 4. Considerations for porting or writing Perl scripts . . . . . . 11 The path of perl on your system . . . . . . . . . . . . . . . . . . 11 Bootstrap statement not required . . . . . . . . . . . . . . . . . . 11 Calls to UNIX commands and utilities. . . . . . . . . . . . . . . . . 11 Message numbers . . . . . . . . . . . . . . . . . . . . . . . 12 File modes . . . . . . . . . . . . . . . . . . . . . . . . . . 12 EBCDIC versus ASCII . . . . . . . . . . . . . . . . . . . . . . 12 Converting hex values to characters in the CGI input stream . . . . . . . 13 Sort order differences . . . . . . . . . . . . . . . . . . . . . 14 Characters versus code points . . . . . . . . . . . . . . . . . . 14 Non-contiguous character ranges . . . . . . . . . . . . . . . . . 16 Chapter 5. Perl command reference . . . . . . . . . . . . . . . . 17 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Chapter 6. Perl for z/OS messages . . . . . . . . . . . . . . . . . 19 Chapter 7. Related Messages . . . . . . . . . . . . . . . . . . 221© Copyright IBM Corp. 2006 iii
  • 5. Appendix A. Code pages . . . . . . . . . . . . . . . . . . . . 223 Appendix B. Accessibility . . . . . . . . . . . . . . . . . . . . 225 Using assistive technologies . . . . . . . . . . . . . . . . . . . 225 Keyboard navigation of the user interface. . . . . . . . . . . . . . . 225 z/OS information . . . . . . . . . . . . . . . . . . . . . . . . 225 Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Trademarks. . . . . . . . . . . . . . . . . . . . . . . . . . 228 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229iv z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 6. Tables© Copyright IBM Corp. 2006 v
  • 7. vi z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 8. About this document This document presents the information you need to set up and use IBM Ported Tools for z/OS: Perl for z/OS Feature.Who should use this document? This document is for the system programmers who run a z/OS system with z/OS UNIX System Services (z/OS® UNIX), and for their users who use IBM Ported Tools for z/OS: Perl for z/OS Feature. On other open systems, some system programmer tasks may be done by an administrator. This document assumes the readers are familiar with z/OS systems and with the information for z/OS and its accompanying products.Where to find more information Where necessary, this document references information in other documents about the elements and features of z/OS. For complete titles and order numbers for all z/OS documents, see z/OS Information Roadmap. Direct your request for copies of any IBM publication to your IBM representative or to the IBM branch office serving your locality. There is also a toll-free customer support number (1-800-879-2755) available Monday through Friday from 6:30 a.m. through 5:00 p.m. Mountain Time. You can use this number to: v Order or inquire about IBM publications v Resolve any software manufacturing or delivery concerns v Activate the program reorder form to provide faster and more convenient ordering of software updatesSoftcopy publications The z/OS library is available on the z/OS Collection Kit, SK2T-6700. This softcopy collection contains a set of z/OS and related unlicensed product documents. The CD-ROM collection includes the IBM® Library Reader, a program that enables customers to read the softcopy documents. Softcopy z/OS publications are available for web-browsing and PDF versions of the z/OS publications for viewing or printing using Adobe Acrobat Reader. Visit the z/OS library at http://www.ibm.com/systems/z/os/zos/bkserv/.IBM Systems Center publications IBM Systems Centers produce Redbooks that can be helpful in setting up and using z/OS. You can order these publications through normal channels, or you can view them with a Web browser. See the IBM Redbooks site at http://www.ibm.com/ redbooks. These documents have not been subjected to any formal review nor have they been checked for technical accuracy, but they represent current product understanding (at the time of their publication) and provide valuable information on a wide range of z/OS topics. You must order them separately.© Copyright IBM Corp. 2006 vii
  • 9. Using LookAt to look up message explanations LookAt is an online facility that lets you look up explanations for most of the IBM messages you encounter, as well as for some system abends and codes. Using LookAt to find information is faster than a conventional search because in most cases LookAt goes directly to the message explanation. You can use LookAt from the following locations to find IBM message explanations for z/OS elements and features, z/VM®, VSE/ESA, and Clusters for AIX® and Linux: v The Internet. You can access IBM message explanations directly from the LookAt Web site at http://www.ibm.com/eserver/zseries/zos/bkserv/lookat/. v Your z/OS TSO/E host system. You can install code on your z/OS or z/OS.e systems to access IBM message explanations, using LookAt from a TSO/E command line (for example, TSO/E prompt, ISPF, or z/OS UNIX System Services). v Your Microsoft Windows workstation. You can install code to access IBM message explanations on the z/OS Collection (SK3T-4269), using LookAt from a Microsoft Windows command prompt (also known as the DOS command line). v Your wireless handheld device. You can use the LookAt Mobile Edition with a handheld device that has wireless access and an Internet browser (for example, Internet Explorer for Pocket PCs, Blazer, or Eudora for Palm OS, or Opera for Linux handheld devices). Link to the LookAt Mobile Edition from the LookAt Web site. You can obtain code to install LookAt on your host system or Microsoft Windows workstation from a disk on your z/OS Collection (SK3T-4269), or from the LookAt Web site (click Download, and select the platform, release, collection, and location that suit your needs). More information is available in the LOOKAT.ME files available during the download process.Using IBM Health Checker for z/OS IBM Health Checker for z/OS is a z/OS component that installations can use to gather information about their system environment and system parameters to help identify potential configuration problems before they impact availability or cause outages. Individual products, z/OS components, or ISV software can provide checks that take advantage of the IBM Health Checker for z/OS framework. This book may refer to checks or messages associated with this component. For additional information about checks and about IBM Health Checker for z/OS, see IBM Health Checker for z/OS: Users Guide. z/OS V1R4, V1R5, and V1R6 users can obtain the IBM Health Checker for z/OS from the z/OS Downloads page at http://http://www.ibm.com/systems/z/os/zos/downloads/. SDSF also provides functions to simplify the management of checks. See z/OS SDSF Operation and Customization for additional information.viii z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 10. Chapter 1. Introduction Perl, which stands for Practical Extraction and Report Language, is a general purpose, open source scripting language. Its powerful text manipulation functions allow file maintenance and automation of system administration. It is also popular for CGI programming on the web owing to its inherent ability to process text. It is highly adaptable and intended to be easy to use and efficient. IBM Ported Tools for z/OS: Perl for z/OS Feature (Perl for z/OS) is a ported version of the open source application Perl (version 5.8.7) available from cpan.org. Perl for z/OS has been tested and packaged for use on z/OS. This document is designed specifically for users of the Perl for z/OS product, and assumes the user has working knowledge of Perl. For more information on the IBM Ported Tools for z/OS product, go to the following site: http://www.ibm.com/ servers/eserver/zseries/zos/unix/port_tools.htmlFinding more information Information specific to the z/OS UNIX implementation of Perl can be found in this document. For general information about the Perl language including links to additional reference sources, refer to the CPAN (Comprehensive Perl Archive Network) website: http://cpan.org The official online souce for Perl core user documentation can be found on the Perldoc website: http://perldoc.perl.org/ Note: IBM is not responsible for content or examples provided by non-IBM Web sites or other non-IBM resources. There are also several mailing lists that may prove useful. One such mailing list is perl-mvs, which provides a forum for people who are using perl on MVS platforms. Note that this mailing list is not provided or maintained by IBM. To subscribe to this mailing list, or to check out other Perl mailing lists that might be of interest, go to the following site: http://lists.cpan.org/ And finally, there is the MVS-OE forum which provides general discussions on z/OS UNIX topics. Go here to subscribe: http://www-03.ibm.com/servers/eserver/zseries/zos/unix/bpxa1dis.htmlSupported utilities In addition to the perl module, Perl for z/OS provides support for additional utilities that are included with the Perl application. The following is a list of utilities supported, along with a description of each: a2p awk to Perl translator. a2p takes an awk script specified on the command line (or from standard input) and produces a comparable perl script on the standard output.© Copyright IBM Corp. 2006 1
  • 11. cppstdin This utility invokes the C preprocessor on standard input and send the output to stdout. It is primarily used by other Configure units that ask about preprocessor symbols. enc2xs This utility builds a Perl extension for use by Encode from either Unicode Character Mapping files (.ucm) or Tcl Encoding Files (.enc). Besides being used internally during the build process of the Encode module, you can use enc2xs to add your own encoding to perl. No knowledge of XS is necessary. find2perl This utility acts as a translator used to convert find command lines to equivalent Perl code. h2ph This utility converts any C header files specified to the corresponding Perl header file format. h2xs This utility reads the .h file for a C library and then creates a skeleton for the .xs file (this is required to build a Perl module which links to the library). It also constructs a system of directories and makefiles in which to build and test the Perl module. instmodsh This utility provides an interactive shell type interface to query details of locally installed Perl modules. libnetcfg This utility is used to configure the libnet. Starting from Perl 5.8, libnet is part of the standard Perl distribution, but the libnetcfg can be used for any libnet installation. Also, without arguments, libnetcfg displays the current configuration. psed This utility is a stream editor which reads the input stream consisting of specified files. It then processes the stream by applying edit commands contained in a script and finally writes the resulting lines to standard output. s2p This utility produces verbose warning diagnostics. splain This utility produces verbose warning diagnostics. xsubpp This utility is a compiler used to convert Perl XS code into C code.Restrictions and limitations The below restrictions and limitations apply to Perl for z/OS: v The following encodings are not supported on EBCDIC: – Chinese – Japanese – Taiwanese – Korean2 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 12. Chapter 2. Installing Perl for z/OS This chapter should be read before installing Perl for z/OS. It consists of the following sections which provide pre-installation planning information and additional post-installation steps. v Pre-installation Planning. This section provides information for file-system allocation and help on locating and relocating or removing open source versions of Perl that may reside on your system. v Post-installation setup. This section provides required and optional post-installation steps such as providing symbolic links to Perl for z/OS,Pre-installation planning The following sections provide you with information that will be helpful in planning to install Perl for z/OS.File-System Allocation Perl for z/OS will installed into /usr/lpp/perl. The Program Directory for IBM Ported Tools for z/OS describes that an HFS file-system of 2400 tracks of 3390 DASD is required. This is approximately 136 M bytes (assuming 15 tracks/cyl 849,960 bytes/cylinder for a 3390 device). Perl for z/OS supports the ability to be expanded dynamically with user modules (non-IBM supported modules which provide additional functionality, see Chapter 3, “Installing user modules,” on page 9 for more information). This is a very popular approach amongst Perl users and most system administrators will find themselves asked to consider adding user modules. While user modules can be installed outside of Perls installation directory, there are times when you may find it beneficial to install it in Perls installation directory. Because the default is to mount the /usr/lpp/ file-system as read-only, a separate file-system for the installation of Perl should be mounted at /usr/lpp/perl to facilitate the addition of user modules.Files and directory structure Perl for z/OS will be installed into the following directories and files as follows: /usr/lpp/perl/ Parent directory for Perl for z/OS /usr/lpp/perl/bin Executeable modules /usr/lpp/perl/bin/perl Perl executeable /usr/lpp/perl/lib Parent directory of libraries /usr/lpp/perl/lib/5.8.7 Parent directory of v 5.8.7 libraries /usr/lpp/perl/man Parent directory of man page The following symbolic links are not automatically created by the installation process but should be created during post installation. (See “Post-installation setup” on page 6 for more information on defining these links): /usr/bin/perl -> /usr/lpp/perl/bin/perl /usr/lib/libperl.so -> /usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE/libperl.so /usr/man/C/man1/hpeza200.book -> /usr/lpp/perl/man/C/man1/hpeza200.bookMigrating from open source versions of Perl Before installing Perl for z/OS, you should check if a previous open source version of Perl acquired from another source has already been installed. Currently, open source versions of Perl (unsupported by IBM) which have been enabled for z/OS UNIX are available from CPAN.org and also the Tools and Toys webpage on the© Copyright IBM Corp. 2006 3
  • 13. z/OS UNIX System Services (z/OS UNIX) web site (http://www.ibm.com/systems/z/ os/zos/features/unix/bpxa1toy.html). Because these versions are not supported, you may wish to remove them. However, Perl for z/OS can co-exist with previous versions, so if you choose to retain them, you will need to make sure that the location of the previous perl module and perl utilities does not conflict. Although Perl for z/OS is functionally equivalent to other available versions of Perl at the same level or earlier, Perl itself has occasionally introduced changes between versions which are not compatible with previous versions and so your user community may need access to the previous version until those version-related migration issues are resolved. So, you should initially retain any previous versions until your user community has transitioned to Perl for z/OS . The Perl application consists of both executeable modules and libraries. The executable modules and libraries for Perl for z/OS will be installed into directories in /usr/lpp/perl/. This is a unique directory specific to Perl for z/OS and so during the installation into these directories there should be no risk of conflict with open source versions of Perl. The libraries for the open source versions of Perl are typically installed in /usr/lib/perl5/ or /usr/local/lib/perl5/ and as stated earlier, these will not conflict with the libraries for Perl for z/OS. It is customary, however, for the executable modules (the module perl and Perls utility programs) or links to them, to be located in /usr/bin/ and/or /usr/local/bin/ and sometimes /bin/. As an additional post-installation step, symbolic links to perl should be defined in one of these directories and this is the point at which a conflict with a previous version may occur. So, if you have a previous version, you will need to make sure to remove or rename these. Tips for finding previous versions of Perl As stated in “Migrating from open source versions of Perl” on page 3, the only conflict during the installation of Perl for z/OS and an open source version of Perl may be in the /usr/bin/ and/or /usr/local/bin/ directories where the executeables are typically installed. There should be no conflict with the installation of the libraries. So, this section will focus on providing tips for finding the executeables. Once the perl executeable is found, it can be used to determine the location of the libraries. v Use the whence command. If perl is located in a directory which is defined in $PATH, then the whence command will indicate which directory it is in. From the UNIX command line, enter: whence perl v Check common directories. Typically, the perl module, or a link to it, is installed in one or more of the following directories: /usr/bin /usr/local/bin /bin (although not typical) Do an "ls -ld perl*" in each of these directories. v Use the find command. The find command is the most thorough method as it performs a search on all directories. However, it can take several minutes to run on systems with heavily populated file-systems. Also, to check all paths, it will most likely need to be run from a superuser. You may wish to restrict the find to system directories such as /usr or /bin. Examples: find /usr -type f -name "perl*" find /bin -type f -name "perl*"4 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 14. If you run this command from a non-superuser, you may wish to redirect all error messages for directories you do not have access to to /dev/null. To do so, add " 2> /dev/null" to the end of the above find commands.v Use the perl -V command to find libraries. If you have located the perl module, you can use the -V option to identify the location of the libraries used by that version of perl: perl -V At the end of the output, you will find the location of the libraries. For example: @INC: /usr/local/lib/perl5/s390/5.00403 /usr/local/lib/perl5 /usr/local/lib/perl5/site_perl/s390 /usr/local/lib/perl5/site_perl .Removing or relocating previous versions of PerlIf you have determined that you have a previous version of Perl, you need todetermine whether you should remove it or relocate it. You should initially relocateprevious versions-- rather than remove them-- until you are satisfied that your usercommunity has no dependencies on it.Some other considerations:v Perl executables from previous versions which have been installed in the common locations should be relocated or removed to avoid conflict with executables provided with Perl for z/OS. The complete list of these potential modules follows (however, not all of these are supported in Perl for z/OS): perl perl5.8.* a2p find2perl pl2pm podchecker splain c2ph h2ph perlbug pod2html podselect xsubpp cpan h2xs perlcc pod2latex prove cppstdin instmodsh perldoc pod2man psed dprofpp libnetcfg perlivp pod2text pstruct enc2xs perl piconv pod2usage s2pv The location of the Perl for z/OS libraries will be different from the directories of the open source versions, so there is not a requirement to relocate the open source version of the libraries to install Perl for z/OS. However, if the previous versions are left installed in the customary locations, users not aware of the path of the libraries for Perl for z/OS may mistake those open source libraries for the supported libraries.v The location of the libraries is hard-coded into the executables, so if the libraries are moved, the previous executables will not work unless the user defines the path to the libraries using the PERL5LIB environment variable. For example, presuming /usr/bin/oldperl is the new location of the Perl libraries: export PERL5LIB=/usr/bin/oldperlAnalyze existing perl scriptsIf you have an open source version of Perl installed, then most likely there are Perlusers scripts on your system as well. While Perl does not guarantee that it isupwardly compatible, it is rare to encounter problems due to this. So, there is a highlikelihood that existing scripts will work fine with Perl for z/OS without modification.If you have Perl applications that are critical to your mission, however, you maywish to test them against Perl for z/OS before making Perl for z/OS the defaultversion of Perl on your system. This can be done by installing Perl for z/OS but notcreating the symbolic links in the standard directories such as /usr/bin. This way, Chapter 2. Installing Perl for z/OS 5
  • 15. you can continue to use the previous version while directing specific test scripts to the new Perl for z/OS perl installed as /usr/lpp/perl/bin/perl. Perl Script Analysis Tool. The Perl Script Analysis Tool (psat.pl) is a script available for download from the http://www.ibm.com/servers/eserver/zseries/zos/ unix/perl/index.html. This is a tool that can be run against one or more scripts and which will generate a report of error messages and warnings for any known problems. This is an evolving tool which will be regularly updated as and should new potential pitfalls with existing scripts become known. You may wish to use this tool to perform a preliminary screening of existing Perl scripts before cutting over to Perl for z/OSPost-installation setup This section describes post-installation steps.Add references to libperl.so This step is required.. Perl for z/OS is a DLL (dynamic link library) application. It requires that the directory path of the primary DLL libperl.so be defined in the LIBPATH environment variable. (libperl.so is located in /usr/lpp/perl/lib/5.8.7/ os390-thread-multi/CORE/). If not defined, when perl is executed, the user will see the following error: CEE3501S The module libperl.so was not found. The traceback information could not be determined. and a CEEDUMP file may be created. There are severals ways that LIBPATH can be updated and several places where LIBPATH should be updated. The following sections describe these methods and places. Update LIBPATH environment There are three approaches to adding libperl.so to the LIBPATH environment variable which are summarized as follows and described in more detail below: 1. to create a symbolic link to libperl.so in a directory which is already defined in the system default for LIBPATH; 2. to add the directory containing libperl.so to the system default setting of LIBPATH; 3. to require the user to add the directory containing libperl.so to their LIBPATH. Create symbolic link to libperl.so in default LIBPATH. Unless your installation has changed or removed it, the default system profile (/etc/profile which is typically based on /samples/profile) will include the directory /usr/lib. For example, in /etc/profile you might see: LIBPATH=/lib:/usr/lib:. export LIBPATH Presuming so, you should create a symbolic link to libperl.so in /usr/lib using the following shell commands (superuser authority will most likely be required): cd /usr/lib ln -s /usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE/libperl.so libperl.so Add directory of libperl.so to default LIBPATH. An alternative to creating a symbolic link in /usr/lib is to add the directory containing libperl.so to the default6 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 16. LIBPATH. (This is not the preferred solution as it adds a directory to every users LIBPATH which is not needed by every user). To implement this approach, edit the /etc/profile file and add the directory to the existing LIBPATH definition. For example, change it to: LIBPATH=/lib:/usr/lib:/usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE:. export LIBPATH Require user to add the libperl.so directory to their LIBPATH. This approach requires that the user know to do this before running perl. This can be done by the user in two ways. The first would be to add the LIBPATH definition to their .profile in the same manner as shown for updating /etc/profile. The second approach would be to set it from the command line prior to executing perl or by preceeding the perl command or script with the modification as shown in the following example: LIBPATH="/usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE:$LIBPATH" perl hello.pl This will cause LIBPATH to be changed only for the duration of the perl command.| Update Webserver configuration| In order to run Perl scripts through the IBM HTTP Server, the directory containing| libperl.so needs to be added to the LIBPATH variable defined in httpd.envvars| (which is typically found in the directory /etc). For example:| LIBPATH=/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/lpp/ldap/lib:/usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE| or if a link was created in /usr/lib to libperl.so as described earlier:| LIBPATH=/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/lpp/ldap/lib:/usr/lib| The PassEnv LIBPATH statement may also need to be added to the httpd.conf| file. Refer to the IBM HTTP Server Users Guide for more information on IBM HTTP| Server configuration. Update cron jobs Note: If you have determined that there is not an open source version of Perl already installed on your system, then this step can be skipped as there will be not Perl scripts that are being run. cron is a unix utility which allows programs to be scheduled and automatically run at preset times or intervals. crontab is the utility used to schedule these programs. Because LIBPATH is not an environment variable that is automatically set when a program is run under cron, any scheduled jobs that invoke perl need to have the LIBPATH variable prepended to the command. For example, if the command is myperlscript.pl, change it to: LIBPATH=/usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE myperlscript.pl The programs that have been scheduled to run under cron can be found in the directory /usr/spool/cron/crontabs. Each file in this directory has a name which is the same as the user who scheduled the jobs and contains the jobs which they have scheduled. To find any perl programs which may be invoked, the grep utility can be used. grep is a command which will search a file or files for a specified string. A Perl program can be invoked by passing a perl script to perl as an argument (ex: perl myperlscript.pl) or by defining perl on the shbang statement on the first line of a script (ex: #!/usr/bin/perl). It is customary to name Perl programs with an extension of ".pl" or ".cgi", however, this is not a requirement, so there is no full-proof way to find all perl programs, however the following grep commands (when run by a superuser) will reveal most: Chapter 2. Installing Perl for z/OS 7
  • 17. cd /usr/spool/cron/crontabs grep -l perl * grep -l ".pl" grep -l ".cgi" Should these commands reveal Perl programs, the crontab -u user command can be used to modify these files. However, it may be best to contact the owners and have them update their own crontab files as they will be most familiar with these commands.Add symbolic link for man page The Perl for z/OS man page file is hpeza200.book and is located in the directory /usr/lpp/perl/man/C/man1/. In order to easily view this with simply the command man perl, the directory /usr/lpp/perl/man/C (without the "/man1/") needs to be added to the default MANPATH environment variable defined in /etc/profile. Alternately, you can create a symbolic link to hpeza200.book in the /usr/man/C/man1/ directory which is typically defined as the default path of MANPATH in /etc/profile. To do this: cd /usr/man/C/man1 ln -s /usr/lpp/perl/man/C/man1/hpeza200.book hpeza200.bookAdd symbolic link to perl in /usr/bin Perl is typically installed into /usr/bin (and sometimes also /usr/local/bin or /bin although these are less often done). Most perl scripts are not invoked by passing them as an argument to perl (as in: perl myperlscript.pl), but by defining perl as the interpreter on the shbang statement (ex: #!/usr/bin/perl. Because Perl for z/OS is installed as /usr/lpp/perl/bin/perl, in order for these scripts to run, the shbang statements would need to be changed. Therefore, a symbolic link for perl should be created in /usr/bin which points to /usr/lpp/perl/bin/perl. For example: cd /usr/bin ln -s /usr/lpp/perl/bin/perl perl You may also wish to create a symbolic link in /usr/local/bin which is less typical than /usr/bin although reasonably common. It is not suggested that you create a link in /bin although that can be found on some systems.Add path of perl to PATH environment variable To facilitate running perl from the z/OS UNIX command line, update the PATH environment variable to include the path of perl. If a symbolic link to perl was created in the previous step in /usr/bin, then add /usr/bin/ to the PATH environment variable. If not, then add the /usr/lpp/perl/bin to the PATH environment variable. Changing the PATH variable for all users is typically done in the /etc/profile file. For example, in the /etc/profile file, find the last statement defining PATH. It will look something like: PATH=/bin:/usr/lpp/java/J2/J1.3/bin:. Add a new line after the last PATH statement to add the path of perl to the existing PATH definition: PATH="$PATH:/usr/bin"8 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 18. Chapter 3. Installing user modules This section provides instructions on how to install user modules for your perl application. User modules are a self-contained piece of Perl code that can be used by a Perl program or by other Perl modules. It is conceptually similar to a C link library, or a C++ class. They are typically written by users of Perl to enhance the functionality of Perl and are made available to the Perl user community through repositories such as http://cpan.org . Note: The process for adding user modules to the Perl for z/OS installation is supported by IBM, however, the user modules are not supported by IBM. Should you experience problems testing or running a user module, please contact the author of that module as IBM will not be able to provide service for it. Additionally, you may want to share your question with other Perl for z/OS users by posting your question to the perl-mvs mailing list which can be found at http://lists.cpan.org/.Before you BeginInsure you have the necessary access The default process for installing user modules is to install them into Perls installation directories. On most systems, this file-system will be mounted read-only and will require super-user or special authority. If you do not have this access, you can install to a local directory that you control, however, additional steps will be required to perform the initial installation and also later to access the module from your Perl program.Acquire required utilities The installation process for most all user modules will require the use of the gzip and gmake utilities. These are not utilities provided with z/OS UNIX or supported by IBM. However, very usable versions can be downloaded from the IBM Tools and Toys Web site, which is a repository of helpful applications for z/OS UNIX which are not currently supported by IBM. These versions of gzip and gmake are not the latest version available, however, there have been no reports of users experiencing problems with them. For those who wish to have the latest and greatest versions of gzip and gmake, the open source code is available from http://gzip.org and http://www.gnu.org/software/make. Note that while there are some similiarities between the z/OS UNIX make utility and gmake, there are enough differences that Perl user modules do not always build correctly when using the z/OS UNIX make. So, gmake should always be used to build user modules.Install prerequisite modules Some modules require that prerequisite modules be installed first. Review the INSTALL, README, or similar help file provided in the module package to determine this.© Copyright IBM Corp. 2006 9
  • 19. Steps for installing user modules This section describes the typical steps required to install most user modules. Occassionally, some modules will use a modified process which should be described in an INSTALL, README, or similar help file provided in the module package. 1. Acquire the user module package (typically a "tar.gz" file-- a tar file which has been compressed with gzip). When transferring this file to your z/OS UNIX system, to prevent corruption of the file, be sure to use binary mode (also known as image mode in some file transfer applications) as opposed to "text" or "ascii" mode. 2. Extract the files from the package. Most all packages will be designed so that the extracted files are installed into a sub-directory (in the current directory) of the same name as the package. The file must first be uncompressed using gzip. For example: gzip -d module-2.0.tar.gz This will produce the tar file module-2.0.tar. The module file should next be extracted, or unwound, using the pax utility. (tar does not perform automatic codepage translation and has a few other traits that make it the less desired application for this). For example: pax -rvf module-2.0.tar -o to=IBM-1047 This will extract the files and also convert them from the ASCII code page (ISO8849-1) to the EBCDIC code page (IBM-1047) at the same time. You can perform the gzip and pax commands in one step by piping the output from gzip to pax as shown in the following example: gzip -cd module-2.0.tar.gz | pax -rv -oto=IBM-1047 Note that if the package contains non-text files such as graphic files (jpg, gif, etc), they should be extracted in a second pass without the -o to=IBM-1047. For example: pax -rvf module-2.0.tar *.jpg 3. Set up the environment. Define the following environment variables: export _C89_CCMODE=1 export LIBPATH="$LIBPATH:/usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE" 4. Build the module. cd module-2.0 perl Makefile.PL gmake 5. Test the module. gmake test 6. Install the module. gmake install 7. You are done. The module is now installed and ready for use.10 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 20. Chapter 4. Considerations for porting or writing Perl scripts The purpose of this chapter is to familiarize you with those aspects of Perl which may differ on z/OS UNIX as compared with other platforms. While every effort has been made to ensure that the behavior of Perl for z/OS is consistent with Perl on other platforms, each platform has its unique characteristics that can affect how Perl operates. When writing a new Perl script, particularly one that might be used on other platforms, or when porting a Perl script from another platform to z/OS UNIX, you should keep in mind the issues discussed in this chapter. The following topics are discussed: v “The path of perl on your system” v “Bootstrap statement not required” v “Calls to UNIX commands and utilities” v “Message numbers” on page 12 v “File modes” on page 12 v “EBCDIC versus ASCII” on page 12The path of perl on your system It is standard practice to define the location of perl on the first line of a perl script. For example: #!/usr/bin/perl The default installation path of the perl module is /usr/lpp/perl/bin/perl, however, it is suggested as a post-installation step that /usr/bin/perl be created as a symbolic link to /usr/lpp/perl/bin/perl so that no changes are required to your perl scripts. Your system administrator may have purposely or accidentally overlooked creating this link, so if your perl script fails, verify that the location of perl on your sytem matches that defined in your script.Bootstrap statement not required Prior to os/390 V2R8, the shell did not support the shbang ( "#!...", "pound bang", or "Magic Number"), so the "#!/usr/bin/perl" statement was not recognized. In order to get perl scripts to run, you had to insert the following statement at the beginning of the script: eval ’exec /usr/bin/perl -S $0 ${1+"$@"}’ if 0; If you have these in your scripts, they should be removed and the proper shbang statement used. If you leave them in, your scripts will still work fine (presuming youve installed perl in the same location), but they will probably cause unneccessary confusion to new developers and also drag performance down a bit.Calls to UNIX commands and utilities When porting scripts from other platforms that contain calls to UNIX system commands or utilities, be aware that the syntax or behavior of these commands may vary. Two examples to illustrate this:© Copyright IBM Corp. 2006 11
  • 21. v The sort utility (not to be confused with the perl sort() function although this issue applies to it as well), can sort data in a different order depending on the platform. For more details, refer to “Sort order differences” on page 14. v The date command, while a standard utility on UNIX systems, may vary from platform to platform and an option supported by date on other platforms may not be supported on z/OS UNIX, or vice-versa. The following examples show date commands that would not execute on other platforms: z/OS: date -c linux: date -d "12/31/03 23:59" "+%s" FreeBSD: date "-j -f "%Y%m%d_%H:%M" 20031231_23:59 "+%s"Message numbers To enhance serviceability, IBM assigns a unique message number to each warning and error message generated by Perl. These message numbers are of the form HPE2xxxx where xxxx is a unique four digit number. If your script or process needs to compare these messages against an expected message, the presence of the message number can cause the message to not match. For this reason, message numbering can be disabled by setting the _PERL_NOMSGID environment variable to 1 prior to running the script. For example: export _PERL_NOMSGID=1File modes The numeric value of file modes on z/OS UNIX differ from those in standard UNIX. The following example shows the difference between standard and z/OS UNIX using Tie with read only mode: Standard UNIX tie(@a, "Tie::File", $file, mode =>0, recsep => $RECSEP) z/OS UNIX tie(@a, "Tie::File", $file, mode =>2, recsep => $RECSEP) or tie(@a, "Tie::File", $file, mode =>O_RDONLY, recsep => $RECSEP) Note: mode=>0 is for O_RDONLY on standard UNIX, but on z/OS UNIX it is mode=>2 To prevent this from occurring, use macros instead of numeric values for mode. The macros are listed below: v O_RDONLY v O_RDWR v O_WRONLYEBCDIC versus ASCII EBCDIC, which stands for Extended Binary-Coded-Decimal Interchange Code, is the code set used on z/OS UNIX. By contrast, ASCII is the dominant code set on almost all other platforms. Scripts written for ASCII platforms without an awareness of code set independent coding practices, can run incorrectly on z/OS UNIX. The following sections discuss some of these issues. It can be helpful to visualize the difference between the code pages and so graphical representations of the EBCDIC (IBM-1047) and ASCII (ISO8859-1) code pages have been provided in Appendix A, “Code pages,” on page 223.12 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 22. For a general overview of character sets and code pages, refer to National Language Support Reference Manual, Volume 2, SE09-8002. For additional information on running Perl in EBCDIC platforms, see "Considerations for running Perl on EBCDIC platforms" in http://perldoc.perl.org/perlebcdic.htmlConverting hex values to characters in the CGI input stream A very common code phrase in Perl CGI scripts is the following: $value =~ s/%([a-fA-F0-9]{2})/pack(’C’,chr(hex($1)))/ge; A very similar variant of this which is sometimes seen with an early unofficial port of Perl to OS/390 was (note the E versus C in the above): $value =~ s/%([a-fA-F0-9]{2})/pack(’E’,chr(hex($1)))/ge; Neither will (or should) work with Perl for z/OS and will need to be replaced with statements shown later in this section. The intent of both of these statements is to convert characters which are represented in hex in the CGI data stream into the equivalent characters on the local platform. For example, consider the following URL: http://myurl.com/cgi-bin/display.pl?page=this is a test To insure that the spaces are properly enterpreted as part of the value of page, they are translated into the characters "%20". 0x20 is the hexidecimal value of the code point for a space in the ASCII code page. The resulting data passed to the display.pl script is: id=this%20is%20a%20test In order to be interpreted correctly, these hex characters need to be translated back into their character representations. The first statement shown above is a very common code phrase used to do this. The problem with the above first statement is that it converts 0x20 to the EBCDIC character which corresponds to 0x20 which is not a space. The problem with the above second statement is that the E option which returns the correct EBCDIC character, however, it is not supported by Perl. For this translation code to work correctly, it needs to be replaced with one of the following: method 1: $value =~ s/%([a-fA-F0-9]{2})/chr(utf8::unicode_to_native(hex($1)))/ge; or method 2: $value =~ s/%([a-fA-F0-9]{2})/pack(’U’, hex($1))/ge; The difference between these two is that in the method 2, the UTF8-flag for the variable is set on. This should not be an issue for most users, however, if you are not certain, use method 1. Note that the utf8::unicode_to_native and utf8::native_to_unicode functions are undocumented but supported. Chapter 4. Considerations for porting or writing Perl scripts 13
  • 23. Sort order differences The default sort order differs between EBCDIC and ASCII platforms. When using the Perl sort() function, or calling the unix sort utility, you should be aware of these differences. The following table demonstrates how the sort order varies. The "Orig" column show a random order of characters. The following columns show the different sort orders generated by the Perl sort() function and the unix sort utility on the z/OS UNIX and Linux platforms: ---- ------------ ------------ z/OS Linux Orig sort() sort sort() sort ---- ------ ---- ------ ---- = A : 0 0 = 0 = 9 9 : Z a : : 0 : z = = 9 A A A a z Z Z Z A 9 0 a a z a 9 z z ZCharacters versus code points One of the most common problems when porting scripts from other platforms to z/OS is caused by the technique of referring to characters using their codepoint (ordinal) value rather than their symbolic value. For example, consider the following code: $x=ord(’A’); if ($x == 0x41) { print "x is ’A’ n"; } else { print "x is not ’A’ n"; } The if statement would only be true on an ASCII platform where the ordinal value of the character A is 0x41. If this code were run on z/OS UNIX, it would print x is not ’A’ because the ordinal value of A on an EBCDIC codepage is 0xC1. Newline ("n") The ordinal value of the newline ("n") character is different between EBCDIC and ASCII. So, the symbolic representation of this character should always be used rather than the ordinal values. The following are incorrect and correct examples: print "Hello World 012"; # incorrect print "Hello World n"; # correct The following table shows the ordinal values of the newline and carriage return characters on EBCDIC and ASCII: Dec Octal Hex EBCDIC 21 025 0x15 ASCII 10 012 0xA Newlines with IPC (Socket related functions) A common misconception in socket programming is that n eq 012 everywhere. When using protocols such as common Internet protocols, 012 and 015 are called for specifically, and the values of the logical n and r (carriage return) are not reliable. The following is an example: print SOCKET "Hi there, client!rn"; # Incorrect print SOCKET "Hi there, client!015012"; # Correct14 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 24. However, using 015012 (or cMcJ, or x0Dx0A) can be tedious and unsightly, aswell as confusing to those maintaining the code. As such, the Socket modulesupplies a more convenient and user friendly method.use Socket qw(:DEFAULT :crlf);print SOCKET "Hi there, client!$CRLF" # CorrectWhen reading from a socket, remember that the default input record separator $/ isn , but robust socket code will recognize it as either 012 or 015012, which is endof line:while (<SOCKET>) {# ...}Because both CRLF and LF end in LF, the input record separator can be set to LF,and any CR stripped later. It is more effective to write it as follows:use Socket qw(:DEFAULT :crlf);local($/) = LF; # not needed if $/ is already 012while (<SOCKET>) {s/$CR?$LF/n/; # not sure if socket uses LF or CRLF, OK# s/015?012/n/; # same thing}This example is preferred over the previous one, even for UNIX platforms, becausenow any 015s (cMs) are stripped out.Similarly, functions that return text data, such as a function that fetches a Webpage, should translate newlines before returning the data, especially if they havenot yet been translated to the local newline representation. A single line of code willoften suffice:$data =~ s/015?012/n/g;return $data;For further reference, visit Writing portable Perl.pack and unpack functionsWhen using the pack and unpack functions, keep in mind that the length value istaken from the character code point. Because of this, the behavior of thesefunctions will differ when used on an EBCDIC platform as compared to an ASCII orother character set platform.The following is an example code fragment containing the unpack function:my $b = "Xt01234567n" x 100;my @a = unpack("(a1 c/a)*", $b);In the above code fragment, the unpack function is attempting to unpack $b into anarray with a resulting size of 200 with each value alternating between "X" and"01234567n"; for example, ($a[0] = "X"; $a[1] = "01234567n";), where a1 refers tothe X value (a one character long string item) and c/a refers to "01234567n".However, this does not occur as expected on the EBCDIC system. The reason is inhow "" works in the unpack function. The value before the "" is the length-itemand the value after is the string-item. The length-item dictates the number ofstring-items to retrieve. In this case, the length-item is "t" (tab) which on an ASCIIsystem has the ordinal value of 9, indicating that a nine character long string itemshould to be retrieved next. (The ()* part indicates that this should be donerepetitively until the end of $b is encountered.) However, on the EBCDIC system,the ordinal value for t may not be 9. On some EBCDIC systems it is 5. Because of Chapter 4. Considerations for porting or writing Perl scripts 15
  • 25. this discrepancy in code points, the results of running the pack and unpack functions will differ if you are running in on EBCDIC platform as compared to an ASCII or other platform. Because the z/OS environment is EBCDIC, you will need to be aware of this when using the pack and unpack functions in this environment.Non-contiguous character ranges EBCDIC does not have the alphabet in a contiguous manner - there are gaps. For example, the character >> that lies between i and j will not be translated by the tr/i-j/X. This works in the other direction too, if either of the range endpoints is numeric, tr/x89-x91/X will translate x8b, even though x89 is i and x91 is j and x8b are gapped characters from the alphabetic viewpoint. Thus, knowledge of these gapped characters on the z/OS platform is required to write scripts.16 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 26. Chapter 5. Perl command referenceSynopsis perl [switches] [--] [programfile] [arguments]Description Perl, which stands for Practical Extraction and Report Language, is a general purpose, open source scripting language. Its powerful text-manipulation functions allow file maintenance and automation of system administration. It is also popular for CGI programming on the web owing to its inherent ability to process text. It is highly adaptable and intended to be easy to use and efficient. For more information about Perl including links to additional reference sources, refer to the CPAN (Comprehensive Perl Archive Network) Web site: http://cpan.orgOptions Perl accepts the following command line switches: -0[octal] This option specifies the record separator as an octal (0 if no octal is present). -a This option turns on autosplit mode when used with -n or -p . It splits $_ into the @F array, and inserts it as the first command inside the while loop created by -n or -p. -C[number/list] This option enables the listed Unicode features. -c This option specifies "check syntax only mode" (runs BEGIN and CHECK blocks). -d[:debugger] This option specifies the program to run with the debugger. -D[number/list] This option specifies debugging flags (argument is a bit mask or alphabet characters). -e program This option enables a single line of the program to be entered (multiple -es are allowed, omit programfile). -F/pattern/ This option specifies a pattern to split() on if the -a switch is also in effect. (//s are optional). -i[extension] This option specifies that files processed by <> are to be edited in place. It will create a backup of the old file if an extension is supplied, by adding the extension to the name of the old file. -Idirectory This option specifies that the directory following -I are to be prefixed to @INC/#include (several -Is are allowed).© Copyright IBM Corp. 2006 17
  • 27. Perl -l[octal] This option enables line ending processing. -[mM][-]module This option executes usemodule before executing the program. If the first character after the -M or -m is a minus (-), then the use is replaced with no. -n This option creates a while (<>) { ... } loop around the program. -p This option creates a while (<>) { ... } loop around the program, and also prints out each line of the loop iteration. -P This option specifies the program to be run through the C preprocessor before compilation by perl. -s This option enables rudimentary parsing for switches on the command line after the program name but before any filename arguments or the -- switch terminator. -S This option specifies that perl use the PATH environment variable to search for the program (unless the name of the program starts with a slash). -t This option specifies "taint" warnings to be turned on. -T This option specifies "taint" checks to be turned on. -u This option specifies perl to dump core after parsing the program. -U This option enables perl to perform unsafe operations. -v This option prints the version and patch level of the Perl program. -V[:variable] This option prints a summary of the major Perl configuration values (or a single Config.pm variable). -W This option enables all warnings. -X This option disables all warnings.18 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 28. Chapter 6. Perl for z/OS messages Problem determination: No additional information.HPE20001 Ambiguous range in transliteration operator Source: PerlExplanation: You wrote something like tr/a-z-0//, Module: Not applicable.which doesnt mean anything. To include a - characterin a transliteration, put it either first or last. (In the past, Routing code: Not applicable.tr/a-z-0// was synonymous with tr/a-y//, which was Descriptor code: F- A fatal error (trappable).probably not what you would have expected.) Automation: Not applicable.Example: HPE20001 Ambiguous range intransliteration operator HPE20003 delete argument is not a HASH orSystem action: Perl immediately stops interpreting the ARRAY element or slicefile (before any statements are run) and exits. Explanation: The argument to delete() must be eitherOperator response: No System Operator response is a hash or array element, such asrequired. $foo{$bar}User response: Look at the place where the $ref->{"susie"}transliterate operator is used in the regular expression Example: HPE20003 delete argument is not a HASHand check the syntax. or ARRAY element or sliceSystem programmer response: No System System action: Perl immediately stops interpreting theProgrammer response is required. file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response isSource: Perl required.Module: Not applicable. User response: Go to the line number shown in the error message and check to make sure that theRouting code: Not applicable. argument to delete() is a hash or array element.Descriptor code: F- A fatal error (trappable). System programmer response: No SystemAutomation: Not applicable. Programmer response is required. Problem determination: No additional information.HPE20002 arg argument is not a HASH or ARRAY Source: Perl element Module: Not applicable.Explanation: The argument to exists() must be a hashor array element, such as: Routing code: Not applicable. $foo{$bar} Descriptor code: F- A fatal error (trappable). $ref->{"susie"} Automation: Not applicable.In the message text:arg HPE20004 exists argument is not a subroutine argument nameExample: HPE20002 foo argument is not a HASH or Explanation: The exists() function expects a functionARRAY element name as argument, not the function call. exists &sub() will generate this error.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Example: HPE20004 exists argument is not a subroutine nameOperator response: No System Operator response isrequired. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.User response: Go to the line number shown in theerror message and make sure that the argument to Operator response: No System Operator response isexists() is a hash or array element. required.System programmer response: No System User response: Go to the line number shown in theProgrammer response is required. error message and check whether the exists function© Copyright IBM Corp. 2006 19
  • 29. argument is a function name and not the function call. string2 string Example Key name of keySystem programmer response: No SystemProgrammer response is required. Example: HPE20006 Attempt to access disallowed key maths in a restricted hashProblem determination: No additional information. System action: Perl immediately stops interpreting theSource: Perl file (before any statements are run) and exits.Module: Not applicable. Operator response: No System Operator response isRouting code: Not applicable. required.Descriptor code: F- A fatal error (trappable). User response: Check whether the key name you are using is correct. Is it a key of the hash you are using?Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20005 ! allowed only after types types in function Problem determination: No additional information.Explanation: The ! is allowed in pack() or unpack() Source: Perlonly after certain types. See perlfunc/pack. Module: Not applicable.In the message text: Routing code: Not applicable.types Descriptor code: F- A fatal error (trappable). List of types, usually: "sSiIlLxX" Automation: Not applicable.function The function name "pack" or "unpack" HPE20007 Attempt to delete readonly key stringExample: HPE20005 ! allowed only after types from a restricted hashsSiIlLxX in pack Explanation: The failing code attempted to delete aSystem action: Perl immediately stops interpreting the key whose value has been declared read-only from afile (before any statements are run) and exits. restricted hash.Operator response: No System Operator response is In the message text:required. stringUser response: Make sure that you are not using ! string Lockedother than sSiIlLxX characters in the template section ofthe pack or unpack function. Example: HPE20007 Attempt to delete read-only key ’sub’ from a restricted hashSystem programmer response: No SystemProgrammer response is required. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response isSource: Perl required.Module: Not applicable. User response: Make sure that you are not trying toRouting code: Not applicable. delete the hash element whose value has been declared read-only.Descriptor code: F- A fatal error (trappable). System programmer response: No SystemAutomation: Not applicable. Programmer response is required. Problem determination: No additional information.HPE20006 Attempt to string1 string2 a restricted hash Source: PerlExplanation: The failing code tried to get or set a key Module: Not applicable.that is not in the current set of allowed keys of a Routing code: Not applicable.restricted hash. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.string1 string Example: access disallowed20 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 30. Example: HPE20010 Assignment to both a list and aHPE20008 Args must match #! line scalarExplanation: The setuid emulator requires that the System action: Perl immediately stops interpreting thearguments used to invoke perl match the arguments file (before any statements are run) and exits.specified on the #! line. Operator response: No System Operator response isExample: HPE20008 Args must match #! line required.System action: Perl immediately stops interpreting the User response: Go to the line number displayed infile (before any statements are run) and exits. the error message and determine whether the secondOperator response: No System Operator response is and third arguments of the conditional operator shouldrequired. be either scalar or list.User response: Because some systems impose a System programmer response: No Systemone-argument limit on the #! line, try combining Programmer response is required.switches. For example, change w -U to -wU. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20011 | and > may not both be specified onAutomation: Not applicable. command line Explanation: Perl does its own command lineHPE20009 Arg too short for msgsnd redirection and found that STDIN was a pipe, and that an attempt was made to redirect STDIN using <. YouExplanation: msgsnd() requires a string whose length can use only one STDIN stream at a time.is greater than or equal to sizeof(long). Example: HPE20011 | and > may not both beExample: HPE20009 Arg too short for msgsnd specified on command lineSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Check the size of the argument sent User response: Do not use | and > together whento the msgsnd() function. you are running a Perl script in a VMS system.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20010 Assignment to both a list and a scalar HPE20012 Bad arg length for function, is num,Explanation: If you assign to a conditional operator, should be numthe second and third arguments must either both be Explanation: You passed a buffer of the wrong size toscalars or both be lists. Otherwise, Perl wont know one of msgctl(), semctl() or shmctl().which context to supply to the right side. In the message text: Chapter 6. Perl for z/OS messages 21
  • 31. function Programmer response is required. function name Example: "Socket::inet_ntoa". Problem determination: No additional information.num Source: Perl A number. Module: Not applicable.Example: HPE20012 Bad arg length forSocket::inet_ntoa, is 4, should be 6 Routing code: Not applicable.System action: Perl immediately stops interpreting the Descriptor code: F- A fatal error (trappable).file (before any statements are run) and exits. Automation: Not applicable.Operator response: No System Operator response isrequired. HPE20014 Bad arg length for function, length isUser response: The arg length for the function you num, should be at least numhave used in the script is not correct. Correct it asshown in the error. For Example Explanation: You passed a buffer that was the wrong size.Bad arg length for Socket::inet_ntoa, is 4, should be 6 In the message text:Here inet_ntoa take arg length as 6 but 4 has beenpassed which is wrong. function function name Example: "Socket::inet_ntoa".System programmer response: No SystemProgrammer response is required. num A number.Problem determination: No additional information. Example: HPE20014 Bad arg length forSource: Perl Socket::inet_ntoa length is 4, should be at least 6Module: Not applicable. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Routing code: Not applicable. Operator response: No System Operator response isDescriptor code: F- A fatal error (trappable). required.Automation: Not applicable. User response: Correct the buffer size. System programmer response: No SystemHPE20013 Bad arg length for function, length is Programmer response is required. num, should be num Problem determination: No additional information.Explanation: You passed a buffer of the wrong size toone of msgctl(), semctl() or shmctl(). Source: PerlIn the message text: Module: Not applicable.function Routing code: Not applicable. function name Example: "Socket::inet_ntoa". Descriptor code: F- A fatal error (trappable).num A number. Automation: Not applicable.Example: HPE20013 Bad arg length forSocket::inet_ntoa, length is 4, should be 6 HPE20015 Attempt to bless into a referenceSystem action: Perl immediately stops interpreting the Explanation: The CLASSNAME argument to thefile (before any statements are run) and exits. bless() operator is expected to be the name of the package to bless the resulting object into.Operator response: No System Operator response isrequired. Example: HPE20015 Attempt to bless into a referenceUser response: The arg length for the function you System action: Perl immediately stops interpreting thehave used in the script is not correct. Correct it as file (before any statements are run) and exits.shown in the error. For Example Operator response: No System Operator response isBad arg length for Socket::inet_ntoa, is 4, should be 6 required.Here inet_ntoa take arg length as 6 but 4 has been User response: A reference was supplied, as in thepassed which is wrong. following example: bless $self, $proto;System programmer response: No System22 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 32. Instead, do the following to avoid blessing into the Operator response: No System Operator response isreference: required.bless $self, ref($proto) "" $proto; User response: Check to make sure open() is beingSystem programmer response: No System called. Also, make sure the function call is made inProgrammer response is required. correct package.Problem determination: If you want to bless into the System programmer response: No Systemstringified version of the reference supplied, you need to Programmer response is required.stringify it yourself, as in the following example: Problem determination: No additional information. bless $self, "$proto"; Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20018 Bad index while coercing array intoHPE20016 Bad evalled substitution pattern hashExplanation: Youve used the /e switch to evaluate Explanation: The index looked up in the hash foundthe replacement for a substitution, but perl found a as the 0th element of a pseudo-hash is not legal.syntax error in the code to evaluate. Example: HPE20018 Bad index while coercing arrayExample: HPE20016 Bad evalled substitution pattern into hashSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Check the syntax for an unexpected User response: Index values must be at 1 or greater.right brace (}) and correct it. See perlref.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20017 Bad filehandle: filehandle HPE20019 BEGIN failed--compilation abortedExplanation: A symbol was passed to something (file Explanation: An untrapped exception was raised whilehandling function) wanting a filehandle, but the symbol a BEGIN subroutine was being executed. Compilationdid not have a filehandle associated with it. stops immediately and the interpreter is exited.In the message text: Example: HPE20019 BEGIN failed--compilation abortedfilehandle filehandle System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Example: HPE20017 Bad filehandle: FH Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. Chapter 6. Perl for z/OS messages 23
  • 33. User response: Correct any errors in the the BEGIN Programmer response is required.block. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20022 Cannot compress negative numbers inAutomation: Not applicable. pack Explanation: An argument to pack("w",...) wasHPE20020 Callback called exit negative. The BER compressed integer format can only be used with positive integers.Explanation: A subroutine invoked from an externalpackage via call_sv() exited by calling exit. Example: HPE20022 Cannot compress negative numbers in packExample: HPE20020 Callback called exit System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Before you can compress the integer,User response: Check whether call_sv() is exited by it should either be a positive integer or it should be lesscalling exit, before calling call_sv(). than 1e308.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: For more information, seeSource: Perl perlfunc/pack.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20021 Cannot compress integer in packExplanation: An argument to pack("w",...) was too HPE20023 Can only compress unsigned integerslarge to compress. The BER compressed integer format in packcan only be used with positive integers, and you Explanation: An argument to pack("w",...) was not anattempted to compress Infinity or a very large number integer. The BER compressed integer format can only(> 1e308). See perlfunc/pack. be used with positive integers, but something else wasExample: HPE20021 Cannot compress integer in compressed. See perlfunc/pack.pack Example: HPE20023 Can only compress unsignedSystem action: Perl immediately stops interpreting the integers in packfile (before any statements are run) and exits. System action: Perl immediately stops interpreting theOperator response: No System Operator response is file (before any statements are run) and exits.required. Operator response: No System Operator response isUser response: If you want to compress the integer, it required.should either be a positive integer or it should be less User response: Check the argument passed for pack.than 1e308. If the template that was used is w, then it should haveSystem programmer response: No System an unsigned integer as the argument.24 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 34. System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20026 Cant coerce array into hash Explanation: An array was used where a hash wasHPE20024 Cant bless non-reference value expected, but the array has no information about how to map from keys to array indicesExplanation: Only hard references can be blessed.This is how Perl "enforces" encapsulation of objects. Example: HPE20026 Cant coerce array into hashExample: HPE20024 Cant bless non-reference value System action: Perl immediately stops interpreting the file (before any statements are run) and exits.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Operator response: No System Operator response is required.Operator response: No System Operator response isrequired. User response: You cannot deal hash as an array . You can do that only with arrays that have a hashUser response: Check if you are trying to bless a reference at index 0.non-reference value. This is not allowed. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: See perlobj. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20027 Cant coerce string1 to integer in string2HPE20025 Cant chdir to dir Explanation: Certain types of SVs (scalar values) , inExplanation: You called perl -x/foo/bar, but particular real symbol table entries (typeglobs), cannot/foo/bar is not a directory that you can chdir to, be forced to stop being what they are.possibly because it doesnt exist. In the message text:In the message text: string1dir string example: string,ref-to-glob etc directory string2Example: HPE20025 Cant chdir to foo/test string example: integerSystem action: Perl immediately stops interpreting the Example: HPE20027 Cant coerce ARRAY to integerfile (before any statements are run) and exits. in array derefOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: While running the perl program, Operator response: No System Operator response ischeck to make sure that the directory being given required.exists. User response: You can not change the behaviour ofSystem programmer response: No System globs. Please dont try to force the variable to change inProgrammer response is required. that case. Chapter 6. Perl for z/OS messages 25
  • 35. System programmer response: No System Example: HPE20029 Can not coerce unknown toProgrammer response is required. string in lc.Problem determination: No additional information. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Source: Perl Operator response: No System Operator response isModule: Not applicable. required.Routing code: Not applicable. User response: Do not try to convert the string to aDescriptor code: F- A fatal error (trappable). string.Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20028 Cant coerce string1 to number in Problem determination: No additional information. string2 Source: PerlExplanation: Certain types of SVs (scalar values) , in Module: Not applicable.particular real symbol table entries (typeglobs), cannotbe forced to stop being what they are. Routing code: Not applicable.In the message text: Descriptor code: F- A fatal error (trappable).string Automation: Not applicable. string example: string,ref-to-glob etcstring2 HPE20030 Cant call method "function" on an string example: integer undefined valueExample: HPE20028 Cant coerce %s to number in Explanation: You used the syntax of a method call,%s but the slot filled by the object reference or package name contains an undefined value.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. In the message text:Operator response: No System Operator response is functionrequired. function or module nameUser response: Do not try to convert the string to a Example: HPE20030 Cant call method "process" onnumber during arthematic operation. an undefined valueSystem programmer response: No System System action: Perl immediately stops interpreting theProgrammer response is required. file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response is required.Source: Perl User response: Check if the package you are using toModule: Not applicable. call the function is undefined.Routing code: Not applicable. Something like this will reproduce the error:Descriptor code: F- A fatal error (trappable). $BADREF = undef;Automation: Not applicable. process $BADREF 1,2,3; $BADREF->process(1,2,3);HPE20029 Cant coerce string1 to string in string2 System programmer response: No SystemExplanation: Certain types of SVs (scalar values) , Programmer response is required.such as real symbol table entries (typeglobs), cannot be Problem determination: No additional information.forced to stop being what they are. Source: PerlIn the message text: Module: Not applicable.string1 string example: unknown Routing code: Not applicable.string2 Descriptor code: F- A fatal error (trappable). string example: string Automation: Not applicable.26 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 36. ’package Cat; my Cat @socks; here @socksHPE20031 Cant call method "function" on unblessed reference System programmer response: No System Programmer response is required.Explanation: A method call must know in whatpackage it is supposed to run. It ordinarily finds this Problem determination: No additional information.information from the object reference supplied, butobject references were not supplied in this case. A Source: Perlreference is not an object reference until it has been Module: Not applicable.blessed. Routing code: Not applicable.In the message text: Descriptor code: F- A fatal error (trappable).function function or module name Automation: Not applicable.Example: HPE20031 Cant call method "process" onunblessed reference HPE20033 Cant declare non-scalar in "AccessSpecifier"System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Explanation: Only scalar, array, and hash variables can be declared as "my" or "our" variables. They mustOperator response: No System Operator response is have ordinary identifiers as names.required. In the message text:User response: Make sure the object reference beingused is blessed. non-scalar non scalar can be dereferenceSystem programmer response: No SystemProgrammer response is required. AccessSpecifier Access specifierProblem determination: No additional information. Example: HPE20033 Can not declare scalarSource: Perl dereference in "our".Module: Not applicable. System action: Perl immediately stops interpreting theRouting code: Not applicable. file (before any statements are run) and exits.Descriptor code: F- A fatal error (trappable). Operator response: No System Operator response is required.Automation: Not applicable. User response: Be sure that only dereference variables are declared as "my" or "our".HPE20032 Cant declare class for non-scalar non-scalar in "AccessSpecifier" System programmer response: No System Programmer response is required.Explanation: Currently, only scalar variables can bedeclared with a specific class qualifier in a "my" or "our" Problem determination: No additional information.declaration. The semantics may be extended for other Source: Perltypes of variables in the future. Module: Not applicable.In the message text: Routing code: Not applicable.non-scalar non scalar can be reference Descriptor code: F- A fatal error (trappable).AccessSpecifier Automation: Not applicable. Access specifierExample: HPE20032 Cant declare class for HPE20034 Cant do inplace edit without backupnon-scalar @socks in "my" Explanation: The operating system cannot read fromSystem action: Perl immediately stops interpreting the a deleted (but still opened) file.file (before any statements are run) and exits. Example: HPE20034 Cant do inplace edit withoutOperator response: No System Operator response is backuprequired. System action: Perl immediately stops interpreting theUser response: Make sure you are not declaring file (before any statements are run) and exits.aclass for non-scalar variable Operator response: No System Operator response isThe following example is not a scalar variable: required. Chapter 6. Perl for z/OS messages 27
  • 37. User response: Make sure the file is backed up System programmer response: No Systembefore editing. To back up the file, do -i.bak, or a Programmer response is required.related instruction. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20037 Cant emulate -opt on #! lineAutomation: Not applicable. Explanation: The #! line specifies a switch that does not make sense at this point.HPE20035 Cant do setuid In the message text:Explanation: This typically means that ordinary perl opttried to exec suidperl to do setuid emulation, but option given with #! like -x -w.couldnt exec it. It looks for a name of the formsperl5.000 in the same directory that the perl executable Example: HPE20037 Cant emulate -x on #! lineresides under the name perl5.000, typically/usr/local/bin on UNIX machines. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Example: HPE20035 Cant do setuid Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Remove all incorrect opt from the #!Operator response: No System Operator response is line. An example of an incorrect opt is -x.required. System programmer response: No SystemUser response: If the file is there, check the execute Programmer response is required.permissions. If it is not there, ask your systemadministrator why the file was removed. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20038 Cant exec filenameAutomation: Not applicable. Explanation: Perl was trying to execute the indicated program because thats what the #! line said. If that is not wanted, "perl" may need to be mentioned on the #!HPE20036 Unable to do waitpid with flags line somewhere.Explanation: This machine does not have either In the message text:waitpid() or wait4(), so only waitpid() without flags isemulated. filename file nameExample: HPE20036 Unable to do waitpid with flags Example: HPE20038 Cant exec test.plSystem action: Perl immediately stops interpreting thefile (before any statements are run) and exits. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Operator response: No System Operator response isrequired. Operator response: No System Operator response is required.User response: Make sure that this machine haswait4() and waitpid().28 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 38. User response: Make sure the right file name is Operator response: No System Operator response isspecified. required.System programmer response: No System User response: Define the label before using itProgrammer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20039 Cant find an opnumber for "keyword"Explanation: A string of a form C<CORE::word> was HPE20041 Cant find string terminator var str vargiven to prototype(), but there is no builtin with the anywhere before EOFname C<word>. Explanation: Perl strings can stretch over multipleIn the message text: lines.This message means that the closing delimiter was omitted. Because bracketed quotes count nestingkeyword levels, the following is missing its final parenthesis: print keyword Example: continue,connect etc q(The character ( starts a side comment.);Example: HPE20039 Cant find an opnumber for In the message text:"continue" varSystem action: Perl immediately stops interpreting the It is a string type char variable, it can be:") ? :file (before any statements are run) and exits. ".Operator response: No System Operator response is strrequired. The String.User response: Check that the prototype of the Example: HPE20041 Cant find string terminator ")"built-in is correct and that there are no mispellings. anywhere before EOFSystem programmer response: No System System action: Perl immediately stops interpreting theProgrammer response is required. file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response isSource: Perl required.Module: Not applicable. User response: Because white space may have been included before or after the closing tag, check theRouting code: Not applicable. syntax.Descriptor code: F- A fatal error (trappable). System programmer response: No SystemAutomation: Not applicable. Programmer response is required. Problem determination: No additional information.HPE20040 Cant find label label Source: PerlExplanation: A goto was attempted to a label that is Module: Not applicable.not mentioned anywhere that is possible to goto. Seeperlfunc/goto. Routing code: Not applicable.In the message text: Descriptor code: F- A fatal error (trappable).label Automation: Not applicable. The labelExample: HPE20040 Can not find label jumphere.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Chapter 6. Perl for z/OS messages 29
  • 39. HPE20042 Cant fork HPE20044 Cant "goto" out of a pseudo blockExplanation: A fatal error occurred while trying to fork Explanation: A "goto" statement was executed towhile opening a pipeline. jump out of what might look like a block, except that it isnt a proper block. This usually occurs if a "goto"Example: HPE20042 Cant fork leaves from a sort() block or subroutine, which is notSystem action: Perl immediately stops interpreting the allowed. See perlfunc/goto.file (before any statements are run) and exits. Example: HPE20044 Cant "goto" out of a pseudoOperator response: No System Operator response is blockrequired. System action: Perl immediately stops interpreting theUser response: Follow local procedures for reporting file (before any statements are run) and exits.problems to IBM. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Do not use any of the loop controlProblem determination: No additional information. operators to exit out of a sort block or subroutine.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable.HPE20043 Cant "goto" into the middle of a Descriptor code: F- A fatal error (trappable). foreach loop Automation: Not applicable.Explanation: A "goto" statement was executed tojump into the middle of a foreach loop. Jumping into the HPE20045 Cant goto subroutine from anmiddle of foreach loop is not permissable. See eval-stringperlfunc/goto. Explanation: The "goto subroutine" call cant be usedExample: HPE20043 Cant "goto" into the middle of a to jump out of an eval "string". (It can be used to jumpforeach loop out of an eval {BLOCK}, but this is not advisable.)System action: Perl immediately stops interpreting the Example: HPE20045 Cant goto subroutine from anfile (before any statements are run) and exits. eval-stringOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Do not use "goto" to jump into any Operator response: No System Operator response isconstruct that requires initialization, such as a required.subroutine or a foreach loop. User response: Do not use "goto" to enter a constructSystem programmer response: No System that is optimized away, or to get out of a block,Programmer response is required. eval-string or subroutine.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.30 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 40. Module: Not applicable.HPE20046 Cant goto subroutine outside a subroutine Routing code: Not applicable.Explanation: The "goto subroutine" call can only Descriptor code: W- A warning (optional).replace one subroutine call for another. Seeperlfunc/goto. Automation: Not applicable.Example: HPE20046 Cant goto subroutine outside asubroutine HPE20048 Cant "last" outside a loop blockSystem action: Perl immediately stops interpreting the Explanation: A "last" statement was executed to breakfile (before any statements are run) and exits. out of the current block, while there is no current block. Note that an "if" or "else" block does not count as aOperator response: No System Operator response is "loopish" block, as well as a block given to sort(), map()required. or grep(). By doubling the curlies, the same effect can be achieved, because the inner curlies will beUser response: Do not use "goto subroutine" to get considered a block that loops once. See perlfunc/last.out of a subroutine. Try calling it out of an AUTOLOADroutine instead. Do not use it to go into any construct Example: HPE20048 Cant "last" outside a loop blockthat requires initialization, such as a subroutine or aforeach loop. Also, do not use it to go into a construct System action: Perl immediately stops interpreting thethat is optimized away, or to get out of a block or file (before any statements are run) and exits.subroutine given to sort. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Do not use "last" to exit a block thatProblem determination: No additional information. returns a value. Because a block by itself is semantically identical to a loop that executes once, youSource: Perl can use "last" to effect an early exit out of such a block.Module: Not applicable. System programmer response: No System Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable.HPE20047 Cant ignore signal CHLD, forcing to Routing code: Not applicable. default Descriptor code: F- A fatal error (trappable).Explanation: Perl detected that it is being run with theSIGCHLD signal (sometimes known as SIGCLD) Automation: Not applicable.disabled. Because disabling this signal will interfere withproper determination of exit status of child processes, HPE20049 Cant localize lexical variable varPerl has reset the signal to its default value. Thissituation typically indicates that the parent program Explanation: Local was used on a variable name thatunder which Perl may be running (for example, cron) is was previously declared as a lexical variable usingbeing very careless. "my". This is not allowed.Example: HPE20047 Cant ignore signal CHLD, In the message text:forcing to default varSystem action: Displays the warning and continues The Variable.interpreting the script. Example: HPE20049 Cant localize lexical variableOperator response: No System Operator response is op_targrequired. System action: Perl immediately stops interpreting theUser response: Make sure that SIG_DFL is used file (before any statements are run) and exits.when USE_SIGCHLD is defined. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: To localize a package variable of theProblem determination: No additional information. same name, qualify it with the package name.Source: Perl System programmer response: No System Chapter 6. Perl for z/OS messages 31
  • 41. Programmer response is required. to the extra library, check to see if the script needs to add the library name to @INC, or check the spelling ofProblem determination: No additional information. the file.Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20050 Cant localize pseudo-hash element Descriptor code: F- A fatal error (trappable).Explanation: The following was found: C<< local Automation: Not applicable.$ar->{’key’} >> , where $ar is a reference to apseudo-hash. That has not been implemented yet. HPE20052 Cant locate object method "method"Example: HPE20050 Cant localize pseudo-hash via package "pkg"element Explanation: A method was called correctly, and itSystem action: Perl immediately stops interpreting the correctly indicated a package functioning as a class, butfile (before any statements are run) and exits. that package doesnt define that particular method, norOperator response: No System Operator response is does any of its base classes. See perlobj.required. In the message text:User response: You can achieve a similar effect by methodlocalizing the corresponding array element directly, such The method name.as C<< local $ar->[$ar->[0]{’key’}] >> . pkgSystem programmer response: No System The package name.Programmer response is required. Example: HPE20052 Cant locate object methodProblem determination: No additional information. "hello" via package "foo"Source: Perl System action: Perl immediately stops interpreting theModule: Not applicable. file (before any statements are run) and exits.Routing code: Not applicable. Operator response: No System Operator response is required.Descriptor code: F- A fatal error (trappable). User response: Check whether the method is definedAutomation: Not applicable. in this package. If it is not, then use the correct package.HPE20051 Cant locate filename System programmer response: No SystemExplanation: An attempt to do (or require, or use) a Programmer response is required.file failed, because that file could not be found. Perl Problem determination: No additional information.looks for the file in all the locations mentioned in @INC,unless the file name included the full path to the file. Source: PerlSee perlfunc/require. Module: Not applicable.In the message text: Routing code: Not applicable.filename Descriptor code: F- A fatal error (trappable). The filename. Automation: Not applicable.Example: HPE20051 Cant locate SvPV_nolenSystem action: Perl immediately stops interpreting the HPE20054 Cant modify var1 in var2file (before any statements are run) and exits. Explanation: The item indicated cannot be assignedOperator response: No System Operator response is to or changed, such as with an auto-increment.required. In the message text:User response: Try one of the following: Set thePERL5LIB or PERL5OPT environment variable to point32 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 42. var1 HPE20056 Cant "next" outside a loop block The variable can be a constant/array/hash. Explanation: A "next" statement was executed tovar2 reiterate the current block, but there are no current The variable is scalar. blocks. An "if" or "else" block does not count as aExample: HPE20054 Cant modify do block in local "loopish" block, neither does a block given to sort(), map() or grep(). You can usually double the curlies toSystem action: Perl immediately stops interpreting the get the same effect though, because the inner curliesfile (before any statements are run) and exits. will be considered a block that loops once. SeeOperator response: No System Operator response is perlfunc/next.required. Example: HPE20056 Cant "next" outside a loop blockUser response: You cannot change the value of a System action: Perl immediately stops interpreting theconstant or built-in-value in scalar. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Do not use "next" to exit a block thatSource: Perl returns a value. Because a block by itself is semantically identical to a loop that executes once,Module: Not applicable. "next" will exit such a block early.Routing code: Not applicable. System programmer response: No SystemDescriptor code: F- A fatal error (trappable). Programmer response is required.Automation: Not applicable. Problem determination: No additional information. Source: PerlHPE20055 Cant modify non-lvalue subroutine call Module: Not applicable.Explanation: Subroutines meant to be used in lvalue Routing code: Not applicable.context should be declared as such. Lvalue subroutinesare still experimental and the implementation may Descriptor code: F- A fatal error (trappable).change in future versions of Perl. See Lvalue Automation: Not applicable.subroutines.Example: HPE20055 Cant modify non-lvalue HPE20060 Cant open perl script "filename":subroutine call reasonSystem action: Perl immediately stops interpreting the Explanation: The script you specified cannot befile (before any statements are run) and exits. opened for the indicated reason.Operator response: No System Operator response is In the message text:required. filenameUser response: You can return a modifiable value file namefrom a subroutine by declaring the subroutine to returnan lvalue. reason Strings which gives the explanation for not openingSystem programmer response: No System the file.Programmer response is required. Example: HPE20060 Cant open perl script "menu":Problem determination: No additional information. EDC5129I No such file or directory.Source: Perl System action: Perl immediately stops interpreting theModule: Not applicable. file (before any statements are run) and exits.Routing code: Not applicable. Operator response: No System Operator response is required.Descriptor code: F- A fatal error (trappable). User response: If you are debugging a script thatAutomation: Not applicable. uses #! and normally rely on the shells $PATH search, use the -S option. Perl will do the search so you dont have to type the path or `which $scriptname`. System programmer response: No System Programmer response is required. Chapter 6. Perl for z/OS messages 33
  • 43. Problem determination: No additional information. "loopish" block; neither are blocks given to sort(), map() or grep().Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: See redo.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20061 Cant redefine active sort subroutine function Descriptor code:Explanation: Perl optimizes the internal handling of Automation: Not applicable.sort subroutines and keeps pointers into them. Anattempt was made to redefine one such sort subroutine HPE20063 Cant return illegalValue from lvaluewhen it was currently active, which is not allowed. subroutineIn the message text: Explanation: Perl detected an attempt to return illegalfunction lvalues (such as temporary or readonly values) from a function name subroutine used as an lvalue. This is not allowed.Example: HPE20061 Cant redefine active sort In the message text:subroutine func illegalValueSystem action: Perl immediately stops interpreting the Illegal value (undef,temporary or readonly values)file (before any statements are run) and exits. Example: HPE20063 Cant return undef from lvalueOperator response: No System Operator response is subroutinerequired. System action: Perl immediately stops interpreting theUser response: If you want to redefine the sort file (before any statements are run) and exits.routine, you should write sort { &func } @x instead of Operator response: No System Operator response issort func @x . required.System programmer response: No System User response: Do not assign undef or readonlyProgrammer response is required. value to lvalue.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20062 Cant "redo" outside a loop block Automation: Not applicable.Explanation: A "redo" statement was executed torestart the current block, but there are no current HPE20064 Cant return outside a subroutineblocks. Explanation: The return statement was executed inExample: HPE20062 Cant "redo" outside a loop block mainline code, that is, where there was no subroutineSystem action: Perl immediately stops interpreting the call to return out of.file (before any statements are run) and exits. Example: HPE20064 Cant return outside a subroutineOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: You can usually double the curly Operator response: No System Operator response isbrackets to get the same effect because the inner curly required.brackets will be considered a block that loops once.Note that an "if" or "else" block doesnt count as a34 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 44. User response: Do not put the return statement Operator response: No System Operator response isoutside the subroutine. required.System programmer response: No System User response: Do not take the square root of aProgrammer response is required. negative number.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20065 Cant take log of num Automation: Not applicable.Explanation: For ordinary real numbers, you canttake the logarithm of a negative number or zero. Use HPE20067 Cant undef active subroutinethe Math::Complex package that comes standard with Explanation: A routine that is currently running cannotPerl if you want to do that for the negative numbers. be undefined. It can be redefined while it is running,In the message text: though. You can even undefine the redefined subroutine while the old routine is running.num number (negative number or zero) Example: HPE20067 Cant undef active subroutineExample: HPE20065 Cant take log of zero System action: Perl immediately stops interpreting the file (before any statements are run) and exits.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Operator response: No System Operator response is required.Operator response: No System Operator response isrequired. User response: Check whether you are trying to undefine a routine thats currently running.User response: Do not take the log of a negativenumber or zero. System programmer response: No System Programmer response is required.System programmer response: No SystemProgrammer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20068 Cant use bareword word as DataType ref while "strict refs" in useHPE20066 Cant take sqrt of num Explanation: Only hard references are allowed byExplanation: For ordinary real numbers, you cannot "strict refs". Symbolic references are not allowed.take the square root of a negative number. Use theMath::Complex package that comes standard with Perl In the message text:if you want to do that. wordIn the message text: Any wordnum DataType number (negative number) Data type like ARRAY HASH etc.Example: HPE20066 Cant take sqrt of -5 Example: HPE20068 Cant use bareword ("results") as a HASH ref while "strict refs" in useSystem action: Perl immediately stops interpreting thefile (before any statements are run) and exits. System action: Perl immediately stops interpreting the Chapter 6. Perl for z/OS messages 35
  • 45. file (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: If you use use strict refs, be careful User response: Use only a simple scalar variable asabout the syntax while using the reference. a loop variable on a foreach.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20069 Cant use %! because Errno.pm is not HPE20071 Cant use global magicVar in "my" available Explanation: An attempt was made to declare aExplanation: The first time the %! hash is used, perl magical variable as a lexical variable. This is notautomatically loads the Errno.pm module. The Errno allowed. The magic can be tied to only one locationmodule is expected to tie the %! hash to provide (namely the global variable), and it would be confusingsymbolic names for $! errno values. to have variables that looked like magical variables but were not.Example: HPE20069 Cant use %! because Errno.pmis not available In the message text:System action: Perl immediately stops interpreting the magicVarfile (before any statements are run) and exits. Magical variable.Operator response: No System Operator response is Example: HPE20071 Cant use global $1 in "my"required. System action: Perl immediately stops interpreting theUser response: If you are using %!, make sure you file (before any statements are run) and exits.have Errno.pm in your system. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Make sure magical variables are notProblem determination: No additional information. declared as lexical variables.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable.HPE20070 Cant use data-type for loop variable Descriptor code: F- A fatal error (trappable).Explanation: Only a simple scalar variable may be Automation: Not applicable.used as a loop variable on a foreach.In the message text: HPE20072 Cant use "my var" in sort comparisondata-type Explanation: The global variables $a and $b are An invalid data-type. reserved for sort comparisons. You mentioned $a or $b in the same line as the <=> or cmp operator, and theExample: HPE20070 Cant use Non-scalar for loop variable had earlier been declared as a lexical variable.variable In the message text:System action: Perl immediately stops interpreting the36 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 46. var Operator response: No System Operator response is variable name required.Example: HPE20072 Cant use "my $a" in sort User response: There must be another template codecomparison following the slash. See perlfunc/unpack.System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required. Source: PerlUser response: Either qualify the sort variable with Module: Not applicable.the package name, or rename the lexical variable. Routing code: Not applicable.System programmer response: No SystemProgrammer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: Perl HPE20075 Code missing after / in packModule: Not applicable. Explanation: You had a (sub-)template that ends withRouting code: Not applicable. a /.Descriptor code: F- A fatal error (trappable). Example: HPE20075 Code missing after / in packAutomation: Not applicable. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.HPE20073 Cant weaken a nonreference Operator response: No System Operator response isExplanation: You tried to weaken something that was required.not a reference. User response: There must be another template codeExample: HPE20073 Cant weaken a nonreference following the slash. See perlfunc/pack.System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required. Source: PerlUser response: You can weaken references only, not Module: Not applicable.non-references. Routing code: Not applicable.System programmer response: No SystemProgrammer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: Perl HPE20076 class Compilation failed in requireModule: Not applicable. Explanation: Compilation failed due to failing ofRouting code: Not applicable. BEGIN,CHECK or any other class.Descriptor code: F- A fatal error (trappable). In the message text:Automation: Not applicable. class class example BEGIN,CHECK etcHPE20074 Code missing after / in unpack Example: HPE20076 BEGIN failed--Compilation failedExplanation: You had a (sub-)template that ends with in requirea /. System action: Perl immediately stops interpreting theExample: HPE20074 Code missing after / in unpack file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required. User response: Check for any syntax errors or any Chapter 6. Perl for z/OS messages 37
  • 47. normal errors in classes included during the build HPE20078 Constant is not const referenceprocess (including BEGIN,CHECK). Explanation: A constant value (perhaps declaredSystem programmer response: No System using the use constant pragma) is being dereferenced,Programmer response is required. but it amounts to the wrong type of reference. TheProblem determination: No additional information. message indicates the type of reference that was expected. This usually indicates a syntax error inSource: Perl dereferencing the constant value.Module: Not applicable. In the message text:Routing code: Not applicable. constDescriptor code: F- A fatal error (trappable). const nameAutomation: Not applicable. Example: HPE20078 Constant is not PI reference System action: Perl immediately stops interpreting theHPE20077 Constant(str1):str2str3str4 file (before any statements are run) and exits.Explanation: The parser found inconsistencies either Operator response: No System Operator response iswhile attempting to define an overloaded constant, or required.when trying to find the character name specified in the User response: Correct the syntax error in<N{...} escape. Maybe the corresponding overload or deferencing the constant value. You may be trying tocharnames pragma was not loaded. dereference the constant variable.In the message text: System programmer response: No Systemstr1 Programmer response is required. str1 is constant type. Problem determination: No additional information.st2 Source: Perl The string str 2 may be "$^H{" or "Call to &{$^H{" . Module: Not applicable.str3 str3 may be "(possibly a missing "use charnames Routing code: Not applicable. ...")" or " ". Descriptor code: F- A fatal error (trappable).str4 Automation: Not applicable. str4 may be "} is not defined" or "}} did not return a defined value". HPE20079 Copy method did not return aExample: HPE20077 Constant(overload):$^H{ } is not referencedefined Explanation: The method which overloads "=" isSystem action: Perl immediately stops interpreting the buggy.file (before any statements are run) and exits. Example: HPE20079 Copy method did not return aOperator response: No System Operator response is referencerequired. System action: Perl immediately stops interpreting theUser response: Load the correct pragma. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: There may be a problem withSource: Perl overloading "=". Check whether you used the correct way to overload "=".Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: F- A fatal error (trappable). Problem determination: No additional information.Automation: Not applicable. Source: Perl Module: Not applicable. Routing code: Not applicable.38 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 48. Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20080 CORE::keyword is not a keywordExplanation: The CORE::namespace is reserved for HPE20082 arg defines neither package norPerl keywords. VERSION--version check failedIn the message text: Explanation: You referred to a particular module file (for example, "use Module 42") but that module filekeyword does not have either package declarations or a reserve word for a language $VERSION.Example: HPE20080 CORE::namespace is not a In the message text:keyword argSystem action: Perl immediately stops interpreting the argumentfile (before any statements are run) and exits. Example: HPE20082 Argv defines neither packageOperator response: No System Operator response is nor VERSION--version check failedrequired. System action: Perl immediately stops interpreting theUser response: You cannot use words that are file (before any statements are run) and exits.reserved as keyword in the perl script. Check the errormessage , change the name for which you see the Operator response: No System Operator response iserror, and then run the script. required.System programmer response: No System User response: Make sure that the version you areProgrammer response is required. using as the argument is defined in the respective package that you are providing with "use".Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20081 Count after length/code in unpack Automation: Not applicable.Explanation: You had an unpack template indicating acounted-length string, but you have also specified anexplicit size for the string. HPE20083 Delimiter for here document is too longExample: HPE20081 Count after length/code in Explanation: In a here document construct like FOO ,unpack the label FOO is too long for Perl to handle.System action: Perl immediately stops interpreting the Example: HPE20083 Delimiter for here document isfile (before any statements are run) and exits. too longOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Do not specify an explicit size for the Operator response: No System Operator response isstring when using an unpack template that indicates a required.counted-length string. User response: Make sure that the label name is notSystem programmer response: No System too long for Perl to handle.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: Perl Chapter 6. Perl for z/OS messages 39
  • 49. Module: Not applicable. System programmer response: No System Programmer response is required.Routing code: Not applicable. Problem determination: In perl for packages at theDescriptor code: F- A fatal error (trappable). end it is always made to return true value.Automation: Not applicable. Source: Perl Module: Not applicable.HPE20084 DESTROY created new reference to dead object OBJ Routing code: Not applicable.Explanation: A DESTROY() method created a new Descriptor code: F- A fatal error (trappable).reference to the object that is being destroyed. Perl is Automation: Not applicable.confused, and prefers to abort rather than create adangling reference. HPE20086 arg does not define $moduleIn the message text: ::VERSION--version check failedOBJ Explanation: You specified a certain module (for oject name example, "use Module 42") but that module did notExample: HPE20084 DESTROY created new define a $VERSION.reference to dead object CGI::Session In the message text:System action: Perl immediately stops interpreting the argfile (before any statements are run) and exits. ArgumentOperator response: No System Operator response is modulerequired. module nameUser response: In the line number mentioned in the Example: HPE20086 Argv does not defineerror message, make sure the object used is active. $Module::VERSION--version check failedSystem programmer response: No System System action: Perl immediately stops interpreting theProgrammer response is required. file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response isSource: Perl required.Module: Not applicable. User response: Make sure that the $Module::VERSION variable is defined in the specifiedRouting code: Not applicable. module. If it is, then you can "use" the version argumentDescriptor code: F- A fatal error (trappable). for the respective module.Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20085 "filename" did not return a true value Problem determination: No additional information.Explanation: A required (or used) file must return a Source: Perltrue value to indicate that it compiled correctly and ran Module: Not applicable.its initialization code correctly. Routing code: Not applicable.In the message text: Descriptor code: F- A fatal error (trappable).filename script file name Automation: Not applicable.Example: HPE20085 test.pm did not return a truevalue HPE20087 / does not take a repeat count in functionSystem action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Explanation: You cannot put a repeat count of any kind right after the / code.Operator response: No System Operator response isrequired. In the message text:User response: Make sure that the files that you are functiongiving with require ends with a "1;", so that they always function name like pack or unpack herereturn the true value.40 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 50. Example: HPE20087 / does not take a repeat count User response: In the error line, check if you arein pack doing switching of real and effective GIDs properly.System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required. Source: PerlUser response: In the error line, check if you have Module: Not applicable.used a repeat count of any kind right after the / code ineither pack or unpack. Routing code: Not applicable.System programmer response: No System Descriptor code: F- A fatal error (trappable).Programmer response is required. Automation: Not applicable.Problem determination: No additional information.Source: Perl HPE20090 Excessively long < > operatorModule: Not applicable. Explanation: The contents of a < > operator cannot exceed the maximum size of a Perl identifier. If youreRouting code: Not applicable. just trying to glob a long list of file names, try using theDescriptor code: F- A fatal error (trappable). glob() operator, or put the file names into a variable and glob that.Automation: Not applicable. Example: HPE20090 Excessively long < > operatorHPE20088 entering effective uid failed System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Explanation: While under the use filetest pragma,switching the real and effective UIDs failed. Operator response: No System Operator response is required.Example: HPE20088 entering effective uid failed User response: Look to see if the perl identifier usedSystem action: Perl immediately stops interpreting the in the error line is longer than Perl can handle. If youfile (before any statements are run) and exits. must use a long name, store it in a variable beforeOperator response: No System Operator response is using it.required. System programmer response: No SystemUser response: In the error line, check if you are Programmer response is required.doing switching of real and effective UIDs properly. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20091 exec? Im not *that* kind of operatingAutomation: Not applicable. system Explanation: The exec function is not implemented inHPE20089 entering effective gid failed MacPerl.Explanation: While under the use filetest pragma, Example: HPE20091 exec? Im not *that* kind ofswitching the real and effective GIDs failed. operating systemExample: HPE20089 entering effective gid failed System action: Perl immediately stops interpreting the file (before any statements are run) and exits.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Operator response: No System Operator response is required.Operator response: No System Operator response isrequired. User response: You cannot use exec because it is not implemented in MacPerl. Chapter 6. Perl for z/OS messages 41
  • 51. System programmer response: No System User response: Resolve the error messages, one byProgrammer response is required. one, until you stop getting the error message.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20092 Execution of filename aborted due to Automation: Not applicable. compilation errorsExplanation: The final summary message when a Perl HPE20094 fcntl is not implementedcompilation fails. Explanation: The fcntl() function isnt available onIn the message text: your system.filename Example: HPE20094 fcntl is not implemented file name. System action: Perl immediately stops interpreting theExample: HPE20092 Execution of test.pl aborted due file (before any statements are run) and exits.to compilation errors Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Check if fcntl has been implementedOperator response: No System Operator response is on your machine. Contact the system administrator if itrequired. hasnt.User response: Resolve the error messages, one by System programmer response: No Systemone, until you stop getting the error message. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20095 Final $ should be $ or $name Explanation: You have to decide whether the final $ inHPE20093 class failed--call queue aborted a string was meant to be a literal dollar sign, or was meant to introduce a variable name that happens to beExplanation: An untrapped exception was raised while missing. So you have to put either the backslash or theexecuting a CHECK, INIT, or END subroutine. name.Processing of the remainder of the queue of suchroutines has been prematurely ended. Example: HPE20095 Final $ should be $ or $nameIn the message text: System action: Perl immediately stops interpreting the file (before any statements are run) and exits.class Class name Operator response: No System Operator response is required.Example: HPE20093 END failed--call queue aborted User response: In the error line, if you want to use $System action: Perl immediately stops interpreting the as part of the string, you have to put the backslash (/)file (before any statements are run) and exits. before $.Operator response: No System Operator response is System programmer response: No Systemrequired.42 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 52. Programmer response is required. that all the variables used in the script are lexical variables.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20096 Format not terminated Automation: Not applicable.Explanation: A Format must be terminated by a linewith a solitary dot. Perl reached the end of your filewithout finding such a line. HPE20098 Glob not terminatedExample: HPE20096 Format not terminated Explanation: The lexer saw a left angle bracket in a place where it was expecting a term, so its looking forSystem action: Perl immediately stops interpreting the the corresponding right angle bracket and not finding it.file (before any statements are run) and exits. You may have omitted needed parentheses, and youOperator response: No System Operator response is really meant a "less than".required. Example: HPE20098 Glob not terminatedUser response: Use solitary dots to end the Format in System action: Perl immediately stops interpreting thethe script. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Check the glob function and check forSource: Perl matching right and left angle brackets.Module: Not applicable. System programmer response: No System Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable.HPE20097 Global symbol "name" requires explicit Routing code: Not applicable. package name Descriptor code: F- A fatal error (trappable).Explanation: You specified "use strict vars", which Automation: Not applicable.indicates that all variables must either be lexicallyscoped (using "my"), declared beforehand using "our",or explicitly qualified to say which package the global HPE20099 ()-group starts with a count in functionvariable is in (using "::"). Explanation: A ()-group started with a count. A countIn the message text: is supposed to follow something: a template character or a ()-group.name Symbol name In the message text:Example: HPE20097 Global symbol "$i" requires functionexplicit package name function name like unpack or pack .System action: Perl immediately stops interpreting the Example: HPE20099 ()-group starts with a count infile (before any statements are run) and exits. packOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: If you use Strict in the script, ensure Operator response: No System Operator response is required. Chapter 6. Perl for z/OS messages 43
  • 53. User response: In pack or unpack, count should Operator response: No System Operator response isfollow the template character or group. required.System programmer response: No System User response: Correct the errors and continue.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20100 filename had compilation errors.Explanation: The final summary message when a HPE20102 Illegal declaration of anonymousperl -c fails. subroutineIn the message text: Explanation: When using the sub keyword to construct an anonymous subroutine, you must alwaysfilename specify a block of code File name Example: HPE20102 Illegal declaration of anonymousExample: HPE20100 test.pl had compilation errors. subroutineSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Because this is the final message, User response: Make sure that the Anonymousthere are no actions that you can take. First run the subroutine is followed by the block of code.script using perl -c which will list down the syntax errorsand then debug the script. System programmer response: No System Programmer response is required.System programmer response: No SystemProgrammer response is required. Problem determination: See perlsub for further reference.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20103 Illegal declaration of subroutine subHPE20101 filename has too many errors Explanation: A subroutine was not declared correctly.Explanation: The parser stopped parsing the program For more information, see perlsub.after ten errors. Additional error messages would likelybe uninformative. In the message text:In the message text: sub The subrotine name.filename File name Example: HPE20103 Illegal declaration of subroutine fooExample: HPE20101 test.pl has too many errors System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits.44 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 54. Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Check the syntax of the declaring Problem determination: No additional information.subroutine and make any corrections that are Source: Perlnecessary. Module: Not applicable.System programmer response: No SystemProgrammer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable. HPE20106 Illegal number of bits in vecRouting code: Not applicable. Explanation: The number of bits in vec() (the thirdDescriptor code: F- A fatal error (trappable). argument) must be a power of two from 1 to 32 (or 64,Automation: Not applicable. if your platform supports that). Example: HPE20106 Illegal number of bits in vecHPE20104 Illegal division by zero System action: Perl immediately stops interpreting theExplanation: You tried to divide a number by 0. Either file (before any statements are run) and exits.something was wrong in your logic, or you need to put a Operator response: No System Operator response isconditional in to guard against meaningless input. required.Example: HPE20104 Illegal division by zero User response: Go to the line number mentioned inSystem action: Perl immediately stops interpreting the the error message and make sure that number of bits infile (before any statements are run) and exits. vec() (the third argument) is a power of two from 1 to 32.Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: Go to the line number mentioned inthe error message and make sure that you are not Problem determination: No additional information.dividing a number by 0; it is illegal. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20107 In EBCDIC the v-string componentsDescriptor code: F- A fatal error (trappable). cannot exceed 2147483647Automation: Not applicable. Explanation: An error peculiar to EBCDIC. Internally, v-strings are stored as Unicode code points, and encoded in EBCDIC as UTF-EBCDIC. TheHPE20105 Illegal modulus zero UTF-EBCDIC encoding is limited to code points noExplanation: You tried to divide a number by 0 to get larger than 2147483647 (0x7FFFFFFF).the remainder. Example: HPE20107 In EBCDIC the v-stringExample: HPE20105 Illegal modulus zero components cannot exceed 2147483647System action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Go to the line number mentioned in User response: Go to the line number mentioned inthe error message and check if you tried to divide a the error message and make sure that the v-string sizenumber by 0 to get the remainder. is below the limit in EBCDIC. Chapter 6. Perl for z/OS messages 45
  • 55. System programmer response: No System EndCharProgrammer response is required. Last character in the specified rangeProblem determination: No additional information. Example: HPE20109 Invalid range "9-$" in transliteration operatorSource: Perl System action: Perl immediately stops interpreting theModule: Not applicable. file (before any statements are run) and exits.Routing code: Not applicable. Operator response: No System Operator response isDescriptor code: F- A fatal error (trappable). required.Automation: Not applicable. User response: The range you have specified for tr operator is not correct; make sure you mention the correct range. For reference, see perlop.HPE20108 Insecure directory in env_var System programmer response: No SystemExplanation: You tried to do something that the Programmer response is required.tainting mechanism didnt like. The tainting mechanismis turned on when youre running setuid or setgid, or Problem determination: No additional information.when you specify -T to turn it on explicitly. The tainting Source: Perlmechanism labels all data thats derived directly orindirectly from the user, who is considered to be Module: Not applicable.unworthy of your trust. If any such data is used in a Routing code: Not applicable."dangerous" operation, you get this error. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.env_var environmental variable like $ENV{PATH}. HPE20110 Invalid separator character code inExample: HPE20108 Insecure directory in attribute list$ENV{PATH}. Explanation: Something other than a colon or whiteSystem action: Perl immediately stops interpreting the space was seen between the elements of an attributefile (before any statements are run) and exits. list. If the previous attribute had a parameter list inOperator response: No System Operator response is parentheses, perhaps that list was terminated too soon.required. In the message text:User response: Make sure that the directory is correct codeand secure. Codes like $,&System programmer response: No System Example: HPE20110 Invalid separator character $ inProgrammer response is required. attribute listProblem determination: No additional information. System action: Perl immediately stops interpreting theSource: Perl file (before any statements are run) and exits.Module: Not applicable. Operator response: No System Operator response is required.Routing code: Not applicable. User response: Make sure that the attribute list hasDescriptor code: F- A fatal error (trappable). valid separator characters.Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20109 Invalid range "BegChar-EndChar" in Problem determination: No additional information. transliteration operator Source: PerlExplanation: The range specified in the tr/// or y///operator had a minimum character greater than the Module: Not applicable.maximum character. Routing code: Not applicable.In the message text: Descriptor code: F- A fatal error (trappable).BegChar Automation: Not applicable. First character in the specified range46 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 56. HPE20111 ioctl is not implemented HPE20113 Label not found for "last label"Explanation: The ioctl() function is not supported. Explanation: You named a loop to break out of, but you are not currently in a loop of that name, not even ifExample: HPE20111 ioctl is not implemented you count where you were called from.System action: Perl immediately stops interpreting the In the message text:file (before any statements are run) and exits. labelOperator response: No System Operator response is Label namerequired. Example: HPE20113 Label not found for "last LOOP"User response: In some machines, ioctl is notimplemented. Contact your system administrator. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.System programmer response: No SystemProgrammer response is required. Operator response: No System Operator response is required.Problem determination: No additional information. User response: Make sure that the label name is inSource: Perl the script. Also see last.Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: F- A fatal error (trappable). Problem determination: There should be a section of script by that name as shown in the following example:Automation: Not applicable. LOOP: $a = foo{$a};HPE20112 IO layers (like layer) unavailable .....Explanation: Because your Perl has not been Source: Perlconfigured to support PerlIO, you cannot use IO layers. Module: Not applicable.In the message text: Routing code: Not applicable.layer Descriptor code: F- A fatal error (trappable). Perl IO layers Automation: Not applicable.Example: HPE20112 IO layers (like APR) unavailableSystem action: Perl immediately stops interpreting the HPE20114 Label not found for "next label"file (before any statements are run) and exits. Explanation: You named a loop to continue, butOperator response: No System Operator response is youre not currently in a loop of that name, not even ifrequired. you count where you were called from.User response: In order to use PerlIO, Perl must be In the message text:configured with useperlio. Contact your systemadministrator if you have questions. label Label nameSystem programmer response: No SystemProgrammer response is required. Example: HPE20114 Label not found for "next LOOP"Problem determination: No additional information. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Source: Perl Operator response: No System Operator response isModule: Not applicable. required.Routing code: Not applicable. User response: Be sure that the label name is theDescriptor code: F- A fatal error (trappable). script. Also see perlfunc/next..Automation: Not applicable. System programmer response: No System Programmer response is required. Problem determination: There should be a section of script by that name as shown in the below example. Chapter 6. Perl for z/OS messages 47
  • 57. LOOP: Operator response: No System Operator response is $a = foo{$a}; required. ..... User response: Go to the line number mentioned inSource: Perl the error message and check for the unpack parameter. Also see perlfunc/pack .Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: F- A fatal error (trappable). Problem determination: The length specified in theAutomation: Not applicable. unpack function should be more than the string we use in the function.HPE20115 Label not found for "redo label" Source: PerlExplanation: You named a loop to restart, but youre Module: Not applicable.not currently in a loop of that name, not even if you Routing code: Not applicable.count where you were called from. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.label Label name HPE20117 Malformed PERLLIB_PREFIXExample: HPE20115 Label not found for "redo LOOP" Explanation: An error peculiar to OS/2.System action: Perl immediately stops interpreting the PERLLIB_PREFIX should be of the form prefix1;prefix2file (before any statements are run) and exits. or prefix1 prefix2 with nonempty prefix1 and prefix2. If COperator response: No System Operator response is prefix1 is indeed a prefix of a built-in library search path,required. prefix2 is substituted.User response: Make sure that the label name is in Example: HPE20117 Malformed PERLLIB_PREFIXthe script. Also see redo. System action: Perl immediately stops interpreting theSystem programmer response: No System file (before any statements are run) and exits.Programmer response is required. Operator response: No System Operator response isProblem determination: There should be a section of required.script by that name as shown in the below example. User response: The error may appear if components LOOP: are not found. Try to install the component. $a = foo{$a}; ..... System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20116 length/code after end of string in Automation: Not applicable. unpackExplanation: While unpacking, the string buffer was HPE20118 Malformed prototype for function:strempty when an unpack length/code combination tried to Explanation: You tried to use a function with aobtain more data. This results in an undefined value for malformed prototype. The syntax of function prototypesthe length. is given a brief compile-time check for obvious errorsExample: HPE20116 length/code after end of string in like invalid characters. A more rigorous check is rununpack when the function is called.System action: Perl immediately stops interpreting the In the message text:file (before any statements are run) and exits. function The function name48 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 58. str opt A string consisting argumnets to the function option here -c.Example: HPE20118 Malformed prototype for main::jk: Example: HPE20120 Missing argument to -c$jk1,$jk2,$jk3 System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Check for the space in theUser response: Correct the prototype of the function. command-line argument.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20119 % may not be used in pack HPE20121 Missing comma after first argument to function functionExplanation: You cant pack a string by supplying achecksum, because the checksum process loses Explanation: While certain functions allow you toinformation, and you cant go the other way. specify a filehandle or an "indirect object" before the argument list, this isnt one of them.Example: HPE20119 % may not be used in pack In the message text:System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. function Function name.Operator response: No System Operator response isrequired. Example: HPE20121 Missing comma after first argument to pack functionUser response: Go to the line number mentioned inthe error message and make sure that the pack or System action: Perl immediately stops interpreting theunpack function call is included. Also see file (before any statements are run) and exits.perlfunc/unpack . Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Make sure that function argumentsProblem determination: No additional information. are separated by commas.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable.HPE20120 Missing argument to -opt Descriptor code: F- A fatal error (trappable).Explanation: The argument to the indicated command Automation: Not applicable.line switch must follow immediately after the switch,without intervening spaces.In the message text: Chapter 6. Perl for z/OS messages 49
  • 59. System action: Perl immediately stops interpreting theHPE20122 Missing control char name in c file (before any statements are run) and exits.Explanation: A string enclosed in double quotes Operator response: No System Operator response isended with "c", without the required control character required.name. User response: Go to the line number mentioned inExample: HPE20122 Missing control char name in c the error message and add the $ to the variable.System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required. Source: PerlUser response: c is a control character. If you wantto use c , then you need escape it using . Module: Not applicable.System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: PerlModule: Not applicable. HPE20125 Missing right curly or square bracketRouting code: Not applicable. Explanation: The lexer counted more opening braces ({) or brackets ([} than closing ones. As a general rule,Descriptor code: F- A fatal error (trappable). you will find the missing one near the place you wereAutomation: Not applicable. last editing. Example: HPE20125 Missing right curly or squareHPE20123 Missing name in "my sub" bracketExplanation: The reserved syntax for lexically-scoped System action: Perl immediately stops interpreting thesubroutines requires that they have a name with which file (before any statements are run) and exits.they can be found. Operator response: No System Operator response isExample: HPE20123 Missing name in "my sub" required.System action: Perl immediately stops interpreting the User response: Go to the line number mentioned infile (before any statements are run) and exits. the error message and insert the missing closing brace (}) or bracket (]).Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: Assign a name, followed by "my sub",to the lexically-scoped subroutines. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20126 Module name must be constantAutomation: Not applicable. Explanation: Only a bare module name is allowed as the first argument to a "use".HPE20124 Missing $ on loop variable Example: HPE20126 Module name must be constantExplanation: Variables are always mentioned with the System action: Perl immediately stops interpreting the$ in Perl, unlike the shells, where it can vary from one file (before any statements are run) and exits.line to the next. Operator response: No System Operator response isExample: HPE20124 Missing $ on loop variable required.50 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 60. User response: Only package name to be given after Operator response: No System Operator response is"use" extension of the package should not be specified. required.System programmer response: No System User response: Go to the line number listed in theProgrammer response is required. error message where you have given more arguments in the open function . Also see perlfunc/open for details.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20127 Module name required with -opt option Automation: Not applicable.Explanation: The -M or -m options say that Perl shouldload some module, but you omitted the name of themodule. HPE20129 / must be followed by a*, A* or Z* in packIn the message text: Explanation: You had a pack template indicating aopt counted-length string. Currently the only items that can option like -m have their length counted are a*, A* or Z*.Example: HPE20127 Module name required with -m Example: HPE20129 / must be followed by a*, A*option or Z* in packSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Consult perlrun for full details about User response: Check whether / is followed by a*,-M and -m. A* or Z* in the pack function, if it does not, you needSystem programmer response: No System to add it.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20128 More than one argument to openExplanation: The open function has been asked to HPE20130 / must follow a numeric type inopen multiple files. This can happen if you are trying to unpackopen a pipe to a command that takes a list of Explanation: You had an unpack template thatarguments, but have forgotten to specify a piped open contained a /, but this did not follow some unpackmode. specification producing a numeric value. SeeExample: HPE20128 More than one argument to perlfunc/pack.open Example: HPE20130 / must follow a numeric type inSystem action: Perl immediately stops interpreting the unpackfile (before any statements are run) and exits. System action: Perl immediately stops interpreting the file (before any statements are run) and exits. Chapter 6. Perl for z/OS messages 51
  • 61. Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Go to the line number mentioned in Problem determination: No additional information.the error message and check whether the unpack Source: Perlsyntax is proper; that is, / must follow a numeric type inunpack. Module: Not applicable.System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: PerlModule: Not applicable. HPE20133 Negative lengthRouting code: Not applicable. Explanation: You tried to do a read/write/send/recv operation with a buffer length that is less than 0.Descriptor code: F- A fatal error (trappable). Example: HPE20133 Negative lengthAutomation: Not applicable. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.HPE20131 "my sub" not yet implemented Operator response: No System Operator response isExplanation: Lexically-scoped subroutines have not required.yet been implemented. User response: If the error is while using the readingExample: HPE20131 "my sub" not yet implemented of file, then try to read the data whose size is within theSystem action: Perl immediately stops interpreting the limit.file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: No additional information.User response: You cannot localize the subroutine Source: Perlbecause lexically-scoped subroutines have not yet beenimplemented. Module: Not applicable.System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: PerlModule: Not applicable. HPE20134 Negative offset to vec in lvalue contextRouting code: Not applicable. Explanation: When vec is called in an lvalue context, the second argument must be greater than or equal toDescriptor code: F- A fatal error (trappable). zero.Automation: Not applicable. Example: HPE20134 Negative offset to vec in lvalue contextHPE20132 Negative / count in unpack System action: Perl immediately stops interpreting theExplanation: The length count obtained from a file (before any statements are run) and exits.length/code unpack operation was negative. Operator response: No System Operator response isExample: HPE20132 Negative / count in unpack required.System action: Perl immediately stops interpreting the User response: Make sure, in lvalue context, that thefile (before any statements are run) and exits. second argument is greater than or equal to zero.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Check in the error line for the unpack Problem determination: No additional information.function whether the length count is negative. Also see Source: Perlperlfunc/pack .52 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 62. Module: Not applicable. file (before any statements are run) and exits.Routing code: Not applicable. Operator response: No System Operator response is required.Descriptor code: F- A fatal error (trappable). User response: A comma is not allowed afterAutomation: Not applicable. filehandle or indirect object, for example print FOOBAR, "This text is color FOOBARn";HPE20135 No opt allowed while running setuidExplanation: Certain operations are deemed to be too The above print statement is incorrect; you need to takeinsecure for a setuid or setgid script to even be allowed off the comma after FOOBAR.to attempt. Generally speaking, there will be another System programmer response: No Systemway to do what you want that is, if not secure, at least Programmer response is required.securable. Problem determination: While an explicit import listIn the message text: would probably have caught this error earlier, it naturallyopt does not remedy the fact that your operating system still option Like -P does not support that constant. Maybe you have a typo in the constants of the symbol import list of use orExample: HPE20135 No -P allowed while running import or in the constant name at the line where thissetuid error was triggered.System action: Perl immediately stops interpreting the Source: Perlfile (before any statements are run) and exits. Module: Not applicable.Operator response: No System Operator response isrequired. Routing code: Not applicable.User response: When you are using setuid, do not Descriptor code: F- A fatal error (trappable).use certain options such as -P. For more details, see Automation: Not applicable.Perl security.System programmer response: No System HPE20138 No DB::DB routine definedProgrammer response is required. Explanation: The currently executing code wasProblem determination: No additional information. compiled with the -d switch, but for some reason theSource: Perl current debugger (for example, perl5db.pl or a Devel::module did not define a routine to be called atModule: Not applicable. the beginning of each statement.Routing code: Not applicable. Example: HPE20138 No DB::DB routine definedDescriptor code: F- A fatal error (trappable). System action: Perl immediately stops interpreting theAutomation: Not applicable. file (before any statements are run) and exits. Operator response: No System Operator response isHPE20136 No comma allowed after filehandle required.Explanation: A list operator that has a filehandle or User response: Check with the system administrator"indirect object" is not allowed to have a comma whether perl5db.pl is available on your machine.between that and the following arguments. Otherwise it System programmer response: No Systemwould just be another one of the arguments. One Programmer response is required.possible cause for this is that you expected to haveimported a constant to your name space with use or Problem determination: No additional information.import. Howerver, the import did not take place. It may, Source: Perlfor example, be that your operating system does notsupport that particular constant. Module: Not applicable.In the message text: Routing code: Not applicable.filehandle Descriptor code: F- A fatal error (trappable). file handles Automation: Not applicable.Example: HPE20136 No comma allowed afterfilehandleSystem action: Perl immediately stops interpreting the Chapter 6. Perl for z/OS messages 53
  • 63. HPE20139 No DBsub routine HPE20142 No #! lineExplanation: The executing code was compiled with Explanation: The setuid emulator requires that scriptsthe d switch, but for some reason the current debugger have a well-formed #! line even on machines that do not(for example, perl5db.pl or a Devel::module) didnt support the #! construct.define a DB::sub routine to be called at the beginning. Example: HPE20142 No #! lineof each ordinary subroutine call. System action: Perl immediately stops interpreting theExample: HPE20139 No DBsub routine file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.Operator response: No System Operator response is User response: Some machines do not support the #!required. construct. For those machines, do not use #!.User response: Check whether the DB::sub routine to System programmer response: No Systembe called at the beginning of each ordinary subroutine Programmer response is required.call is defined. Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20143 "no" not allowed in expressionAutomation: Not applicable. Explanation: The "no" keyword is recognized and executed at compile time, and does not return a usefulHPE20140 No group ending character code value. found in template Example: HPE20143 "no" not allowed in expressionExplanation: A pack or unpack template has anopening ( or [ without its matching counterpart. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.In the message text: Operator response: No System Operator response iscode required. Character codes. User response: Do not use keywords. For moreExample: HPE20140 No group ending character ) information, refer to Perl modules.found in template System programmer response: No SystemSystem action: Perl immediately stops interpreting the Programmer response is required.file (before any statements are run) and exits. Problem determination: No additional information.Operator response: No System Operator response isrequired. Source: PerlUser response: In the error line, check the syntax of Module: Not applicable.pack or unpack. A closing bracket may be missing. Routing code: Not applicable.System programmer response: No SystemProgrammer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: Perl HPE20146 No package name allowed for variableModule: Not applicable. var in "our"Routing code: Not applicable. Explanation: Fully qualified variable names are not allowed in "our" declarations. Such syntax is reservedDescriptor code: F- A fatal error (trappable). for future extensions.Automation: Not applicable.54 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 64. In the message text: HPE20148 No setregid availablevar Explanation: Configure did not find anything variable name resembling the setregid() call for your system.Example: HPE20146 No package name allowed for Example: HPE20148 No setregid availablevariable $foo in "our" System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Make sure that setregid() is set up onUser response: You must have given something like your system.this our $foo::bar. That is not allowed. Because youcannot localize the variable of a package, remove "our" System programmer response: No Systemfrom the decleration. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20149 No setreuid available Explanation: Configure did not find anythingHPE20147 No Perl script found in input resembling the setreuid() call for your system.Explanation: You called perl -x, but a line beginning Example: HPE20149 No setreuid availablewith #! and containing the word "perl" was not found in System action: Perl immediately stops interpreting thethe file. file (before any statements are run) and exits.Example: HPE20147 No Perl script found in input Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Make sure that setreuid() is set up onOperator response: No System Operator response is your system.required. System programmer response: No SystemUser response: Check to see if the first line #! Programmer response is required.contains the word "perl". Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20150 No such class nameAutomation: Not applicable. Explanation: You provided a class qualifier in a "my" or "our" declaration, but this class does not exist at this point in your program. In the message text: name class name. Chapter 6. Perl for z/OS messages 55
  • 65. Example: HPE20150 No such class MyClass HPE20152 No such pseudo-hash field str1 inSystem action: Perl immediately stops interpreting the variable str2 of type pkgfile (before any statements are run) and exits. Explanation: You tried to access a field of a typedOperator response: No System Operator response is variable where the type does not know about the fieldrequired. name. The field names are looked up in the %FIELDS hash in the type package at compile time. TheUser response: Make sure that the class name you %FIELDS hash is %usually set up with the fieldsare using in the error line is present. pragma.System programmer response: No System In the message text:Programmer response is required. str1Problem determination: No additional information. The str1 is the field name.Source: Perl str2Module: Not applicable. The str2 is the variable.Routing code: Not applicable. pkg The package nameDescriptor code: F- A fatal error (trappable). Example: HPE20152 No such pseudo-hash fieldAutomation: Not applicable. "notthere" in variable $obj3 of type D3 System action: Perl immediately stops interpreting theHPE20151 No such pseudo-hash field "fieldname" file (before any statements are run) and exits.Explanation: You tried to access an array as a hash, Operator response: No System Operator response isbut the field name used is not defined. The hash at required.index 0 should map all valid field names to array indicesfor that to work. User response: Check that the field is present in the package and if it isnt, do not try to access it.In the message text: System programmer response: No Systemfieldname Programmer response is required. pseudo hash field name. Problem determination: No additional information.Example: HPE20151 No such pseudo-hash field"maths" Source: PerlSystem action: Perl immediately stops interpreting the Module: Not applicable.file (before any statements are run) and exits. Routing code: Not applicable.Operator response: No System Operator response is Descriptor code: F- A fatal error (trappable).required. Automation: Not applicable.User response: You can use the array as a hash (inthis case, it is called a pseudo hash), but the hashindex must be properly mapped. HPE20153 Not a CODE referenceSystem programmer response: No System Explanation: Perl was trying to evaluate a referenceProgrammer response is required. to a code value (that is, a subroutine), but found a reference to something else instead.Problem determination: No additional information. Example: HPE20153 Not a CODE referenceSource: Perl System action: Perl immediately stops interpreting theModule: Not applicable. file (before any statements are run) and exits.Routing code: Not applicable. Operator response: No System Operator response isDescriptor code: F- A fatal error (trappable). required.Automation: Not applicable. User response: You can use the ref() function to find out what kind of ref it really was. See also perlref . System programmer response: No System Programmer response is required. Problem determination: No additional information. Source: Perl56 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 66. Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20156 Not a HASH referenceDescriptor code: F- A fatal error (trappable). Explanation: Perl was trying to evaluate a referenceAutomation: Not applicable. to a hash value, but found a reference to something else instead. You can use the ref() function to find outHPE20154 Not a format reference what kind of ref it really was.Explanation: I am not sure how you managed to Example: HPE20156 Not a HASH referencegenerate a reference to an anonymous format, but this System action: Perl immediately stops interpreting theindicates you did, and that it did not exist. file (before any statements are run) and exits.Example: HPE20154 Not a format reference Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: You are trying to deference becauseOperator response: No System Operator response is you think that the reference is a hash reference, which itrequired. is not. Use ref() to find the reference type and then try using it.User response: A reference to anonymous formatdoes not exist. Make sure you are using the reference System programmer response: No Systemfor existing format. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20157 Not an ARRAY reference Explanation: Perl was trying to evaluate a referenceHPE20155 Not a GLOB reference to an array value, but found a reference to something else instead. You can use the ref() function to find outExplanation: Perl was trying to evaluate a reference what kind of ref it really was.to a "typeglob" (that is, a symbol table entry that lookslike *foo), but found a reference to something else Example: HPE20157 Not an ARRAY referenceinstead. You can use the ref() function to find out what System action: Perl immediately stops interpreting thekind of ref it really was. file (before any statements are run) and exits.Example: HPE20155 Not a GLOB reference Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: You are trying to deference thinkingOperator response: No System Operator response is that reference is an array reference but it is somethingrequired. else. Use ref() to check the reference type and then try using it.User response: See perlref for more information onreferences and try to correct the error. System programmer response: No System Programmer response is required.System programmer response: No SystemProgrammer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable. Chapter 6. Perl for z/OS messages 57
  • 67. HPE20158 Not a perl script HPE20160 Not a subroutine referenceExplanation: The setuid emulator requires that scripts Explanation: Perl was trying to evaluate a referencehave a well-formed #! line even on machines that dont to a code value (that is, a subroutine), but found asupport the #! construct. The line must mention perl. reference to something else instead. You can use the ref() function to find out what kind of ref it really was.Example: HPE20158 Not a perl script Example: HPE20160 Not a subroutine referenceSystem action: Perl immediately stops interpreting thefile (before any statements are run) and exits. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Operator response: No System Operator response isrequired. Operator response: No System Operator response is required.User response: Make sure that the #! construct ispresent and includes perl. User response: You are trying to deference thinking that reference is subroutine but it is something else.System programmer response: No System Check the reference type using ref() and then try usingProgrammer response is required. it.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20159 Not a SCALAR reference Automation: Not applicable.Explanation: Perl was trying to evaluate a referenceto a scalar value, but found a reference to something HPE20161 Not enough arguments for functionelse instead. You can use the ref() function to find outwhat kind of ref it really was. Explanation: The function requires more arguments than you specified.Example: HPE20159 Not a SCALAR reference In the message text:System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. function Function nameOperator response: No System Operator response isrequired. Example: HPE20161 Not enough arguments for TreeUser response: You are trying to deference because System action: Perl immediately stops interpreting theyou think that the reference is scalar reference, which it file (before any statements are run) and exits.is not. Use ref() to find the reference type and then try Operator response: No System Operator response isusing it. required.System programmer response: No System User response: Make sure that the function indicatedProgrammer response is required. by the error message has enough arguments.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.58 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 68. HPE20162 Null filename used HPE20164 Offset outside stringExplanation: You cant require the full file name, Explanation: You tried to do a read/write/send/recvbecause on many machines that means the current operation with an offset pointing outside the buffer. Thedirectory. sole exception to this is that sysread()ing past the buffer will extend the buffer and zero pad the new area.Example: HPE20162 Null filename used Example: HPE20164 Offset outside stringSystem action: Perl immediately stops interpreting thefile (before any statements are run) and exits. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Operator response: No System Operator response isrequired. Operator response: No System Operator response is required.User response: Make sure that the file name usedwith require is not a full file name. For more information, User response: In the line number mentioned in thesee perlfunc/require. error message, cross-check for read/write/send/recv operation with buffer.System programmer response: No SystemProgrammer response is required. System programmer response: No System Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20163 Null picture in formline HPE20165 Out of memory during "large" requestExplanation: The first argument to formline must be a for num bytes, total sbrk() is num bytesvalid format picture specification. It was found to beempty, which probably means you specified an Explanation: The malloc() function returned 0,uninitialized value. indicating there was insufficient remaining memory (or virtual memory) to satisfy the request. However, theExample: HPE20163 Null picture in formline request was judged large enough (compile-time defaultSystem action: Perl immediately stops interpreting the is 64K), so a possibility to shut down by trapping thisfile (before any statements are run) and exits. error is granted.Operator response: No System Operator response is In the message text:required. numUser response: Check the syntax for formline. For A number of bytes.more information, see perlform. Example: HPE20165 Out of memory during "large"System programmer response: No System request for 134221824 bytes, total sbrk() is 64000 bytesProgrammer response is required. System action: Perl immediately stops interpreting theProblem determination: No additional information. file (before any statements are run) and exits.Source: Perl Operator response: No System Operator response is required.Module: Not applicable. User response: When you request for memory, makeRouting code: Not applicable. sure it does not exceed 64k bytes.Descriptor code: F- A fatal error (trappable). System programmer response: No SystemAutomation: Not applicable. Programmer response is required. Problem determination: No additional information. Source: Perl Module: Not applicable. Routing code: Not applicable. Chapter 6. Perl for z/OS messages 59
  • 69. Descriptor code: F- A fatal error (trappable). Operator response: No System Operator response is required.Automation: Not applicable. User response: The request was judged to be small, so the possibility to trap it depends on the way perl wasHPE20166 Out of memory during request for num compiled. By default it is not trappable. However, if bytes, total sbrk() is num bytes compiled for this, Perl may use the contents of $^M asExplanation: The malloc() function returned 0, an emergency pool after die()ing with this message. Inindicating there was insufficient remaining memory (or this case the error is trappable I<once>, and the errorvirtual memory) to satisfy the request. message will include the line and file where the failed request happened.In the message text: System programmer response: No Systemnum Programmer response is required. A number of bytes. Problem determination: No additional information.Example: HPE20166 Out of memory during requestfor 1016 bytes, total sbrk() is 1000 bytes Source: PerlSystem action: Perl immediately stops interpreting the Module: Not applicable.file (before any statements are run) and exits. Routing code: Not applicable.Operator response: No System Operator response is Descriptor code: F- A fatal error (trappable).required. Automation: Not applicable.User response: The request was judged to be small,so the possibility to trap it depends on the way perl wascompiled. By default it is not trappable. However, if HPE20168 Out of memory during ridiculouslycompiled for this, Perl may use the contents of $^M as large requestan emergency pool after die()ing with this message. In Explanation: You cant allocate more thanthis case the error is trappable once, and the error 2^31+"small amount" bytes.message will include the line and file where the failedrequest happened. Example: HPE20168 Out of memory during ridiculously large requestSystem programmer response: No SystemProgrammer response is required. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Problem determination: Error message will includethe line and file where the failed request happened Operator response: No System Operator response isbased on this correct the allocation of memory. required.Source: Perl User response: In the line mentioned in the error message, check if there are any errors in the PerlModule: Not applicable. program. For example, $arr[time] instead ofRouting code: Not applicable. $arr[$time].Descriptor code: F- A fatal error (trappable). System programmer response: No System Programmer response is required.Automation: Not applicable. Problem determination: No additional information.HPE20167 Out of memory during request for num Source: Perl bytes, total sbrk() is num bytes! Module: Not applicable.Explanation: The malloc() function returned 0, Routing code: Not applicable.indicating there was insufficient remaining memory (orvirtual memory) to satisfy the request. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.num A number of bytes. HPE20169 pack/unpack repeat count overflowExample: HPE20167 Out of memory during request Explanation: You cant specify a repeat count so largefor 1016 bytes, total sbrk() is 1000 bytes that it overflows your signed integers.System action: Perl immediately stops interpreting the Example: HPE20169 pack/unpack repeat countfile (before any statements are run) and exits. overflow60 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 70. System action: Perl immediately stops interpreting the packagefile (before any statements are run) and exits. The package name.Operator response: No System Operator response is Example: HPE20171 Cant locate object methodrequired. "func" via package "packa"User response: In the error line, change the repeat System action: Perl immediately stops interpreting thecount to an acceptable number. See perlfunc/pack . file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Check for the function definition in the particular package given in the error message.Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20170 panic: kid popen errno read Descriptor code: F- A fatal error (trappable).Explanation: forked child returned anincomprehensible message about its errno. This is an Automation: Not applicable.internal error that cannot be resolved by the user.Example: HPE20170 panic: kid popen errno read HPE20172 Permission deniedSystem action: Perl immediately stops interpreting the Explanation: The setuid emulator in suidperl decidedfile (before any statements are run) and exits. you were up to no good.Operator response: No System Operator response is Example: HPE20172 Permission deniedrequired. System action: Perl immediately stops interpreting theUser response: Go to the error line and determine file (before any statements are run) and exits.whether forking is happening properly. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Check the file permissions for theProblem determination: No additional information. setuid emulator.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: P- An internal error you shouldnever see (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20171 Cant locate object method "function" Automation: Not applicable. via package "package"Explanation: You called a method correctly, and it HPE20173 P must have an explicit size incorrectly indicated a package functioning as a class, but unpackthat package doesnt define that particular method, nordoes any of its base classes. Explanation: The unpack format P must have an explicit size, not "*".In the message text: Example: HPE20173 P must have an explicit size infunction unpack The function name. System action: Perl immediately stops interpreting the file (before any statements are run) and exits. Chapter 6. Perl for z/OS messages 61
  • 71. Operator response: No System Operator response is User response: Do not use arguments with getpgrp().required. System programmer response: No SystemUser response: When you use P in unpack, you must Programmer response is required.specify the exact length. For more information, see Problem determination: No additional information.perlfunc/unpack. Source: PerlSystem programmer response: No SystemProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20176 Prototype not terminatedDescriptor code: F- A fatal error (trappable). Explanation: You have omitted the closingAutomation: Not applicable. parenthesis in a function prototype definition. Example: HPE20176 Prototype not terminatedHPE20174 -P not allowed for setuid/setgid script System action: Perl immediately stops interpreting theExplanation: The script would have to be opened by file (before any statements are run) and exits.the C preprocessor by name, which provides a racecondition that breaks security. Operator response: No System Operator response is required.Example: HPE20174 -P not allowed for setuid/setgidscript User response: Check the script to see whether you have omitted the closing parenthesis in a functionSystem action: Perl immediately stops interpreting the prototype for any functions.file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: No additional information.User response: Do not use the -P option if you areusing setuid or setgid in script. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20177 Quantifier in {,} bigger than numDescriptor code: F- A fatal error (trappable). Explanation: There is currently a limit to the size of the min and max values of the {min,max} construct. TheAutomation: Not applicable. <-- HERE shows in the regular expression about where the problem was discovered.HPE20175 POSIX getpgrp cannot take an In the message text: argument numExplanation: Your system has POSIX getpgrp(), which number (here Quantifier max limit.)takes no argument, unlike the BSD version, which takesa pid. Example: HPE20177 Quantifier in {,} bigger than 32766Example: HPE20175 POSIX getpgrp cant take anargument System action: Perl immediately stops interpreting the file (before any statements are run) and exits.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Operator response: No System Operator response is required.Operator response: No System Operator response isrequired. User response: Quantifier (min and max) in {,} reqular expression you have given is greater than limited value.62 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 72. Try providing less than the maximum value. System programmer response: No System Programmer response is required.System programmer response: No SystemProgrammer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20180 Reallocation too large: datasizeHPE20178 Quantifier follows nothing Explanation: You cannot allocate more than 64K on an MS-DOS machine.Explanation: You started a regular expression with aquantifier. Backslash it if you meant it literally. The <-- In the message text:HERE shows in the regular expression about where the datasizeproblem was discovered. See perlref. data size.Example: HPE20178 Quantifier follows nothing Example: HPE20180 Reallocation too large: 700000System action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: If you use Quantifier, then it cannot User response: If you are using MS-DOS, you cannotbe empty. Check to see whether the regular expression allocate more than 64K. Try to reduce the size of data.that uses the quantifier is empty or not. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20181 Recompile perl with -DDEBUGGING toHPE20179 Range iterator outside integer range use -D switch (did you mean -d ?)Explanation: One (or both) of the numeric arguments Explanation: You cannot use the -D ion unless theto the range operator ".." are outside the range which code to produce the desired output is compiled intocan be represented by integers internally. One possible Perl, which entails some overhead, which is why it isworkaround is to force Perl to use magical string currently left out of your copy.increment by prepending "0" to your numbers. Example: HPE20181 Recompile perl withExample: HPE20179 Range iterator outside integer -DDEBUGGING to use -D switch (did you mean -d ?)range System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Do not use the -D option because itUser response: Make sure that the arguments used requires extra support.for range operator is an integer. System programmer response: No System Chapter 6. Perl for z/OS messages 63
  • 73. Programmer response is required. file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response is required.Source: Perl User response: Probably indicates an unintendedModule: Not applicable. loop in your inheritance hierarchy. Check the script toRouting code: Not applicable. find out if there is any looping in your inheritance.Descriptor code: F- A fatal error (trappable). System programmer response: No System Programmer response is required.Automation: Not applicable. Problem determination: No additional information.HPE20182 Recursive inheritance detected in Source: Perl package package Module: Not applicable.Explanation: More than 100 levels of inheritance were Routing code: Not applicable.used. Probably indicates an unintended loop in yourinheritance hierarchy. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.package Package name. HPE20184 Script is not setuid/setgid in suidperlExample: HPE20182 Recursive inheritance detected Explanation: The suidperl program was invoked on ain package IN::PACKAGE" script without a setuid or setgid bit set.System action: Perl immediately stops interpreting the Example: HPE20184 Script is not setuid/setgid infile (before any statements are run) and exits. suidperlOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Make sure you have not used more Operator response: No System Operator response isthan limited levels of inheritance in script. required.System programmer response: No System User response: Check whether the setuid or setgid bitProgrammer response is required. is set.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20183 Recursive inheritance detected while Automation: Not applicable. looking for method function in package package HPE20185 Search pattern not terminatedExplanation: More than 100 levels of inheritance were Explanation: The lexer could not find the finalencountered while invoking a method. delimiter of a // or m{} construct. Remember thatIn the message text: bracketing delimiters count nesting level. Missing the leading $ from a variable $m may cause this error.function Function name Example: HPE20185 Search pattern not terminatedpackage System action: Perl immediately stops interpreting the Package name file (before any statements are run) and exits.Example: HPE20183 Recursive inheritance detected Operator response: No System Operator response iswhile looking for method circle in package drawing required.System action: Perl immediately stops interpreting the User response:64 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 74. Example print "$X{What ho?}"; System programmer response: No System Programmer response is required.Here perl sees the ? and interprets it as the beginning Problem determination: No additional information.of a pattern match operator, similar to /. Source: PerlIf you use ? then make sure you you escape it and use. Module: Not applicable.System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: PerlModule: Not applicable. HPE20188 Sequence (? incompleteRouting code: Not applicable. Explanation: A regular expression ended with anDescriptor code: F- A fatal error (trappable). incomplete extension "(?". The <-- HERE shows in the regular expression about where the problem wasAutomation: Not applicable. discovered. Example: HPE20188 Sequence (? incompleteHPE20186 select not implemented System action: Perl immediately stops interpreting theExplanation: This machine does not implement the file (before any statements are run) and exits.select() system call. Operator response: No System Operator response isExample: HPE20186 select not implemented required.System action: Perl immediately stops interpreting the User response: Regular expression is ending withfile (before any statements are run) and exits. incomplete Sequence (? , which leads to the error.Operator response: No System Operator response is Therefore, make sure you end the sequence.required. System programmer response: No SystemUser response: Machine may not have select call. Programmer response is required.Contact system administrator. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20189 Sequence (code...) not recognizedAutomation: Not applicable. Explanation: You used a regular expression extension that does not make sense. The <-- HERE shows in theHPE20187 Self-ties of arrays and hashes are not regular expression about where the problem was supported discovered.Explanation: Self-ties of arrays and hashes are not In the message text:supported in the current implementation. codeExample: HPE20187 Self-ties of arrays and hashes codes(some character sequence in regularare not supported expression.)System action: Perl immediately stops interpreting the Example: HPE20189 Sequence (?<;...) not recognizedfile (before any statements are run) and exits. System action: Perl immediately stops interpreting theOperator response: No System Operator response is file (before any statements are run) and exits.required. Operator response: No System Operator response isUser response: Self-ties are of arrays and hashes are required.not supported in the current implementation, so you User response: Regular expression has Sequencecannot use it. Chapter 6. Perl for z/OS messages 65
  • 75. ((?<; ...) , which is not recognized. This leads to error, Operator response: No System Operator response isand therefore you can not use such sequence. required.System programmer response: No System User response: Sequence (?<...) not implemented, soProgrammer response is required. you can not use it in a regular expression.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20190 Sequence (?#... not terminated Automation: Not applicable.Explanation: A regular expression comment must beterminated by a closing parenthesis. Embedded HPE20192 Sequence (?{...}) not terminated or notparentheses are not allowed. The <-- HERE shows in {}-balancedthe regular expression about where the problem was Explanation: If the contents of a (?{...}) clausediscovered. contains braces, they must balance in order for Perl toExample: HPE20190 Sequence (?#... not terminated properly detect the end of the clause.System action: Perl immediately stops interpreting the Example: HPE20192 Sequence (?{...}) not terminatedfile (before any statements are run) and exits. or not {}-balancedOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Regular expression in which Operator response: No System Operator response isSequence (?#... not terminated, which leads to error. required.Make sure you terminate it. User response: In the regular expression pleaseSystem programmer response: No System make sure the brackets are balanced properly.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20191 Sequence (?code...) not implementedExplanation: A proposed regular expression extension HPE20193 setegid() not implementedhas the character reserved but has not yet been written. Explanation: You tried to assign to $), and yourThe <-- HERE shows in the regular expression about operating system doesnt support the setegid() systemwhere the problem was discovered. call (or equivalent), or at least Configure didnt think so.In the message text: Example: HPE20193 setegid() not implementedcode System action: Perl immediately stops interpreting the codes (some character sequence in regular file (before any statements are run) and exits. expression.) Operator response: No System Operator response isExample: HPE20191 Sequence (?<...) not required.implemented User response: Check whether your system supportsSystem action: Perl immediately stops interpreting the the setegid() call.file (before any statements are run) and exits.66 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 76. System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: PerlModule: Not applicable. HPE20196 setrgid() not implementedRouting code: Not applicable. Explanation: You tried to assign to value to $>, and your operating system doesnt support the setrgid()Descriptor code: F- A fatal error (trappable). system call (or equivalent), or at least Configure didntAutomation: Not applicable. think so. Example: HPE20196 setrgid() not implementedHPE20194 seteuid() not implemented System action: Perl immediately stops interpreting theExplanation: You tried to assign to < $> >, and your file (before any statements are run) and exits.operating system doesnt support the seteuid() system Operator response: No System Operator response iscall (or equivalent), or at least Configure didnt think so. required.Example: HPE20194 seteuid() not implemented User response: Check whether your system supportsSystem action: Perl immediately stops interpreting the setrgid().file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: No additional information.User response: Check whether your system supports Source: Perlthe seteuid() call. Module: Not applicable.System programmer response: No SystemProgrammer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable. HPE20197 setruid() not implementedRouting code: Not applicable. Explanation: You tried to assign to value $< , andDescriptor code: F- A fatal error (trappable). your operating system doesnt support the setruid()Automation: Not applicable. system call (or equivalent), or at least Configure didnt think so.HPE20195 setpgrp cant take arguments Example: HPE20197 setruid() not implementedExplanation: Your system has the setpgrp() from BSD System action: Perl immediately stops interpreting the4.2, which takes no arguments, unlike POSIX setpgid(), file (before any statements are run) and exits.which takes a process ID and process group ID. Operator response: No System Operator response isExample: HPE20195 setpgrp cant take arguments required.System action: Perl immediately stops interpreting the User response: The version of Perl that you are usingfile (before any statements are run) and exits. does not support setruid.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Make sure that the setpgrp function Problem determination: No additional information.call at the error line does not pass any argument. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable. Chapter 6. Perl for z/OS messages 67
  • 77. Example: HPE20200 Your random numbers are notHPE20198 Setuid/gid script is writable by world that randomExplanation: The setuid emulator wont run a script System action: Perl immediately stops interpreting thethat is writable by the world, because the world might file (before any statements are run) and exits.have written on it already. Operator response: No System Operator response isExample: HPE20198 Setuid/gid script is writable by required.world User response: Because Perl could not get anySystem action: Perl immediately stops interpreting the randomness out of your system, this indicates thatfile (before any statements are run) and exits. something is wrong. Check the hash syntax.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: The file name you mention with Problem determination: No additional information.require should be within quotes. Source: PerlSystem programmer response: No SystemProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20201 You need to quote functionDescriptor code: F- A fatal error (trappable). Explanation: You assigned a bareword as a signalAutomation: Not applicable. handler name. Unfortunately, you already have a subroutine of that name declared, which means thatHPE20199 <> should be quotes Perl 5 will try to call the subroutine when the assignment is executed, which is probably not what youExplanation: You wrote require file when you want.should have written require ’file’ . In the message text:Example: HPE20199 <> should be quotes functionSystem action: Perl immediately stops interpreting the The function name Example: packfile (before any statements are run) and exits. Example: HPE20201 You need to quote "pack"Operator response: No System Operator response isrequired. System action: Displays the warning and continues interpreting the script.User response: The file name you mention withrequire should be within quotes. Operator response: No System Operator response is required.System programmer response: No SystemProgrammer response is required. User response: If it is what you want, put an & in front.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code:HPE20200 Your random numbers are not that random Automation: Not applicable.Explanation: When trying to initialize the random seedfor hashes, Perl could not get any randomness out ofyour system.68 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 78. HPE20202 YOU HAVENT DISABLED SET-ID HPE20204 X outside of string in unpack SCRIPTS IN THE KERNEL YET! FIX Explanation: You had a (un)pack template that YOUR KERNEL, OR PUT A C specified a relative position before the beginning of the WRAPPER AROUND THIS SCRIPT! string being (un)packed. See perlfunc/pack.Explanation: You may not be able to disable set-id Example: HPE20204 X outside of string in unpackscripts in the kernel because you may not have thesources to your kernel. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Example: HPE20202 YOU HAVENT DISABLEDSET-ID SCRIPTS IN THE KERNEL YET!n FIX YOUR Operator response: No System Operator response isKERNEL, OR PUT A C WRAPPER AROUND THIS required.SCRIPT!n User response: Correct the template by providing theSystem action: Perl immediately stops interpreting the position inside the string.file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: No additional information.User response: Either fix the kernel or put a Cwrapper around the script. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20205 @ outside of string in unpackDescriptor code: F- A fatal error (trappable). Explanation: You had a template that specified an absolute position outside the string being unpacked. ForAutomation: Not applicable. more information, see perlfunc/unpack. Example: HPE20205 @ outside of string in unpackHPE20203 x outside of string in unpack System action: Perl immediately stops interpreting theExplanation: You had a pack template that specified a file (before any statements are run) and exits.relative position after the end of the string beingunpacked. See perlfunc/pack. Operator response: No System Operator response is required.Example: HPE20203 x outside of string in unpack User response: Correct the template by providing theSystem action: Perl immediately stops interpreting the position inside the string.file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: No additional information.User response: Correct the template by providing theposition inside the string. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20206 Within []-length * not allowed in functionDescriptor code: F- A fatal error (trappable). Explanation: The count in the (un)pack template mayAutomation: Not applicable. be replaced by [TEMPLATE] only if TEMPLATE always matches the same amount of packed bytes that can be Chapter 6. Perl for z/OS messages 69
  • 79. determined from the template alone. This is not possible Routing code: Not applicable.if it contains * -length. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.function The function will be pack or unpack. HPE20208 Wide character in functionExample: HPE20206 Within []-length * not allowed in Explanation: Perl encountered a wide characterpack (greater than 255) when it wasnt expecting one. ThisSystem action: Perl immediately stops interpreting the warning is on by default for functions. For morefile (before any statements are run) and exits. information, see perlfunc/binmode and perlfunc/open.Operator response: No System Operator response is In the message text:required. functionUser response: Correct the template by removing * The function name.from the template. Example: HPE20208 Wide character in printSystem programmer response: No System System action: Displays the warning and continuesProgrammer response is required. interpreting the script.Problem determination: No additional information. Operator response: No System Operator response isSource: Perl required.Module: Not applicable. User response: The easiest way to turn off the warning is to add the :utf8 layer to the output, binmodeRouting code: Not applicable. STDOUT, ’:utf8’. Another way is to add no warningsDescriptor code: F- A fatal error (trappable). ’utf8’; but this is not often suggested. In general, you should explicitly mark the filehandle with an encoding.Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20207 Within []-length code not allowed in function Problem determination: No additional information.Explanation: The count in the (un)pack template may Source: Perlbe replaced by [TEMPLATE] only if TEMPLATE always Module: Not applicable.matches the same amount of packed bytes that can bedetermined from the template alone. This is not possible Routing code: Not applicable.if it contains any of the xphs @, /, U, u, w or a *-length. Descriptor code: W- A warning (optional).In the message text: Automation: Not applicable.function The function will be pack or unpack. HPE20209 Wide charactercode Explanation: Perl encountered a wide character The codes will be one of these @, /, U, u, w or a *. (>255) when it wasnt expecting one. For moreExample: HPE20207 Within []-length / not allowed in information, see perlfunc/binmode and perlfunc/open.pack Example: HPE20209 Wide characterSystem action: Perl immediately stops interpreting the System action: Displays the warning and continuesfile (before any statements are run) and exits. interpreting the script.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: If the following codes are present in User response: The easiest way to turn off thisthe template, remove them: @, /, U, u, w or a *-, warning is to add the :utf8 layer to the output, binmodeSystem programmer response: No System STDOUT, ’:utf8’. Another way is to add no warningsProgrammer response is required. ’utf8’; but this is not often suggested. In general, you should explicitly mark the filehandle with an encoding.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable.70 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 80. Problem determination: No additional information. may think that you wrote the same thing as rand() + 5. However, you got rand(+5). Using parenthese wouldSource: Perl have prevented that situation.Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: W- A warning (optional). Problem determination: No additional information.Automation: Not applicable. Source: Perl Module: Not applicable.HPE20210 Wide character in $/ Routing code: Not applicable.Explanation: Perl encountered a wide character Descriptor code: S- A severe warning (default).(greater than 255) when it wasnt expecting one. Formore information, see perlfunc/binmode and Automation: Not applicable.perlfunc/open.Example: HPE20210 Wide character in $/ HPE20212 Warning: somethings wrongSystem action: Displays the warning and continues Explanation: You passed warn() an empty string (theinterpreting the script. equivalent of warn "") or you called it with no args and $_ was emptyOperator response: No System Operator response isrequired. Example: HPE20212 Warning: somethings wrongUser response: The easiest way to turn off this System action: Displays the warning and continueswarning is to add the :utf8 layer to the output, binmode interpreting the script.STDOUT, ’:utf8’. Another way is to add no warnings Operator response: No System Operator response is’utf8’; but this is not often suggested. In general, you required.should explicitly mark the filehandle with an encoding. User response: Provide the warn function withSystem programmer response: No System arguments.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: W- A warning (optional). Routing code: Not applicable.Automation: Not applicable. Descriptor code: W- A warning (optional). Automation: Not applicable.HPE20211 Warning: Use of "op" without parentheses is ambiguous HPE20213 Version number must be constantExplanation: You wrote a unary operator followed by numbersomething that looks like a binary operator that couldalso have been interpreted as a term or unary operator. Explanation: The attempt to translate a use Module n.n LIST statement into its equivalent BEGIN blockIn the message text: found an internal inconsistency with the version number.op operator. This is an internal error that cannot be resolved by the user.Example: HPE20211 Use of "rand" withoutparentheses is ambiguous Example: HPE20213 Version number must be constant numberSystem action: Displays the warning and continuesinterpreting the script. System action: Displays the warning and continues interpreting the script.Operator response: No System Operator response isrequired. Operator response: No System Operator response is required.User response: Use parentheses as appropriate. Forinstance, if you know that the rand function has a User response: Follow your local procedures fordefault argument of 1.0, and you write rand + 5;you reporting problems to IBM. Chapter 6. Perl for z/OS messages 71
  • 81. System programmer response: No System HPE20215 Variable "var" may be unavailableProgrammer response is required. Explanation: An inner (nested) anonymous subroutineProblem determination: No additional information. is inside a named subroutine, and outside that isSource: Perl another subroutine; and the anonymous (innermost) subroutine is referencing a lexical variable defined in theModule: Not applicable. outermost subroutine.Routing code: Not applicable. In the message text:Descriptor code: P- An internal error you should varnever see (trappable). The variable name.Automation: Not applicable. Example: HPE20215 Variable "v" may be unavailable System action: Displays the warning and continuesHPE20214 Variable "var" will not stay shared interpreting the script.Explanation: An inner (nested) named subroutine is Operator response: No System Operator response isreferencing a lexical variable defined in an outer required.subroutine. When the inner subroutine is called, it willprobably see the value of the outer subroutines variable User response: Make the middle subroutineas it was before and during the *first* call to the outer anonymous, using the sub {} syntax. Perl has specificsubroutine. In this case, after the first call to the outer support for shared variables in nested anonymoussubroutine is complete, the inner and outer subroutines subroutines; a named subroutine in between interfereswill no longer share a common value for the variable. In with this feature.other words, the variable will no longer be System programmer response: No Systemshared.Furthermore, if the outer subroutine is Programmer response is required.anonymous and references a lexical variable outsideitself, then the outer and inner subroutineswill never Problem determination: sub outermost { my $a; subshare the given variable. middle { sub { $a } } } If the anonymous subroutine is called or referenced (directly or indirectly) from theIn the message text: outermost subroutine, it will share the variable as youvar would expect. But if the anonymous subroutine is called The variable name. or referenced when the outermost subroutine is not active, it will see the value of the shared variable as itExample: HPE20214 Variable "a" will not stay shared was before and during the *first* call to the outermostSystem action: Displays the warning and continues subroutine, which is probably not what you want.interpreting the script. Source: PerlOperator response: No System Operator response is Module: Not applicable.required. Routing code: Not applicable.User response: Make the inner subroutineanonymous, using the sub {} syntax. When inner Descriptor code: W- A warning (optional).anonymous subs that reference variables in outer Automation: Not applicable.subroutines are called or referenced, they areautomatically rebound to the current values of suchvariables. HPE20216 Cant locate object method "method" via package "pkg" (perhaps you forgotSystem programmer response: No System to load "pkg"?)"Programmer response is required. Explanation: You called a method correctly, and itProblem determination: No additional information. correctly indicated a package functioning as a class, butSource: Perl that package doesnt define that particular method, and neither does any of its base classes. For moreModule: Not applicable. information, see perlobj.Routing code: Not applicable. In the message text:Descriptor code: W- A warning (optional). methodAutomation: Not applicable. The method name. pkg The package name. Example: HPE20216 Cant locate object method72 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 82. "hello" via package "foo" (perhaps you forgot to load HPE20218 Variable length lookbehind not"foo"?)" implementedSystem action: Perl immediately stops interpreting the Explanation: Lookbehind is allowed only forfile (before any statements are run) and exits. subexpressions whose length is fixed and known atOperator response: No System Operator response is compile time. For more information, see perlre.required. Example: HPE20218 Variable length lookbehind notUser response: Check whether the method is defined implementedin this package. If the method isnt defined, use the System action: Perl immediately stops interpreting thecorrect package. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Use fixed length for lookbehind In theSource: Perl subexpression.Module: Not applicable. System programmer response: No System Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable.HPE20217 "keyword" variable var masks earlier Routing code: Not applicable. declaration in same str Descriptor code: F- A fatal error (trappable).Explanation: A "my" or "our" variable has been Automation: Not applicable.redeclared in the current scope or statement, effectivelyeliminating all access to the previous instance. HPE20219 Lookbehind longer than "length" notIn the message text: implementedk The Keyword will be my or our. Explanation: There is a limit on the length of stringvar that lookbehind can handle. The variable name. In the message text:str length The string will be scope or statment. The maximum length of the string.Example: HPE20217 "my" variable ab masks earlier Example: HPE20219 Lookbehind longer than "255"declaration in same scope not implementedSystem action: Displays the warning and continues System action: Perl immediately stops interpreting theinterpreting the script. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Check to be sure that the earlier User response: Provide the length of the string withvariable will still exist until the end of the scope or until the maximum limit.all closure referents to it are destroyed. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: W- A warning (optional). Automation: Not applicable.Automation: Not applicable. Chapter 6. Perl for z/OS messages 73
  • 83. Routing code: Not applicable.HPE20220 Unknown switch condition (?(str Descriptor code: F- A fatal error (trappable).Explanation: The condition part of a(?(condition)if-clause"else-clause) construct is not Automation: Not applicable.known. The condition may be lookahead or lookbehind(the condition is true if the lookahead or lookbehind istrue), a (?{...}) construct (the condition is true if the xph HPE20222 Unmatched )evaluates to a true value), or a number (the condition is Explanation: Unbackslashed parentheses musttrue if the set of capturing parentheses named by the always be balanced in regular expressions. For morenumber matched). information, see perlre.In the message text: Example: HPE20222 Unmatched )str System action: Perl immediately stops interpreting the The condition part (?(condition)if-clause"else- file (before any statements are run) and exits. clause) of string. Operator response: No System Operator response isExample: HPE20220 Unknown switch condition (?(x) required.in regex User response: Balance the regular expression withSystem action: Perl immediately stops interpreting the the correct number of parentheses.file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: If youre a vi user, the % keyUser response: In the regex, correct the is valuable for finding the matching parenthesis.(?(condition)if-clause"else-clause) construct with propercondition. For more information, see perlre. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20223 Cant do {n,m} with n > mDescriptor code: F- A fatal error (trappable). Explanation: Minima must be less than or equal to maxima. For more information, see perlre.Automation: Not applicable. Example: HPE20223 Cant do {n,m} with n > mHPE20221 Unmatched ( System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Explanation: Unbackslashed parentheses mustalways be balanced in regular expressions. For more Operator response: No System Operator response isinformation, see perlre. required.Example: HPE20221 Unmatched ( User response: Correct the regular expression with the minima and maxima properly defined.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. System programmer response: No System Programmer response is required.Operator response: No System Operator response isrequired. Problem determination: If you want your regexp to match something 0 times, just put {0}.User response: Balance the regular expression withthe correct number of parentheses. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: If youre a vi user, the % key Descriptor code: W- A warning (optional).is valuable for finding the matching parenthesis. Automation: Not applicable.Source: PerlModule: Not applicable.74 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 84. System action: Perl immediately stops interpreting theHPE20224 Regexp *+ operand could be empty file (before any statements are run) and exits.Explanation: The part of the regexp subject to either Operator response: No System Operator response isthe * or + quantifier could match an empty string required.Example: HPE20224 Regexp *+ operand could be User response: Correct the regex by matching theempty brackets. If you want to include a closing bracket in aSystem action: Perl immediately stops interpreting the character class, backslash it or put it first.file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: No additional information.User response: Correct the regexp. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20227 Internal urpDescriptor code: F- A fatal error (trappable). Explanation: Something went awry in the regularAutomation: Not applicable. expression parser. This is an internal error occurred that cannot be resolved by the user.HPE20225 Nested quantifiers Example: HPE20227 Internal urpExplanation: You cant quantify a quantifier without System action: Perl immediately stops interpreting theintervening parentheses. Things like ** or +* or ?* are file (before any statements are run) and exits.illegal. Note that the minimal matching quantifiers, Operator response: No System Operator response isC<*?>, C<+?>, and C appear to be nested quantifiers, required.but arent. For more information, see perlre. User response: Follow your local procedures forExample: HPE20225 Nested quantifiers reporting problems to IBM.System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: Trappable errors may berequired. trapped using the eval operatorUser response: Put parentheses between the Source: Perlquantifiers. Module: Not applicable.System programmer response: No SystemProgrammer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: P- An internal error you should never see (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20228 Missing right brace on char{}Descriptor code: F- A fatal error (trappable). Explanation: Missing right brace in p{...} orAutomation: Not applicable. P{...}. In the message text:HPE20226 Unmatched [ charExplanation: The brackets around a character class The char will be p or P.must match. For more information, see perlre. Example: HPE20228 Missing right brace on p{}Example: HPE20226 Unmatched [ System action: Perl immediately stops interpreting the Chapter 6. Perl for z/OS messages 75
  • 85. file (before any statements are run) and exits. User response: Provide the argument as string instead of a pattern.Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: Provide the missing right brace. Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: W- A warning (optional).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20231 sort is now a reserved wordAutomation: Not applicable. Explanation: Before sort was a keyword, people sometimes used it as a filehandle.HPE20229 Missing right brace on x{} Example: HPE20231 sort is now a reserved wordExplanation: A right brace is missing in the x{}. System action: Perl immediately stops interpreting theExample: HPE20229 Missing right brace on x{} file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.Operator response: No System Operator response is User response: If you are using sort as a filehandle orrequired. something else, change it.User response: Provide the right brace. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20232 Sort subroutine didnt return a numericHPE20230 /str/ should probably be written as "str" valueExplanation: You used a pattern where Perl expected Explanation: A sort comparison routine must return ato find a string, as in the first argument to join. Perl will number. For more information, see perlfunc/sort.treat the true or false result of matching the pattern Example: HPE20232 Sort subroutine didnt return aagainst $_ as the string, which may not be what you numeric valuehad in mind. System action: Perl immediately stops interpreting theIn the message text: file (before any statements are run) and exits.str Operator response: No System Operator response is Any string. required.Example: HPE20230 /hello/ should probably be User response: Use <=> or cmp in sort to return awritten as "hello" numetric value.System action: Displays the warning and continues System programmer response: No Systeminterpreting the script. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required.76 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 86. Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20235 Substitution replacement notAutomation: Not applicable. terminated Explanation: The lexer couldnt find the final delimiterHPE20233 Sort subroutine didnt return single of an s/// or s{}{} construct. Remember that bracketing value delimiters count nesting level. Missing the leading $Explanation: A sort comparison subroutine cannot from variable $s may cause this error.return a list value with more or less than one element. Example: HPE20235 Substitution replacement notFor more information, see perlfunc/sort. terminatedExample: HPE20233 Sort subroutine didnt return System action: Perl immediately stops interpreting thesingle value file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.Operator response: No System Operator response is User response: Correct the substitution with a finalrequired. delimiter, so that the pattern is properly terminated.User response: Provide the proper number of System programmer response: No Systemelements. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20236 Switch (?(condition)... contains too many branchesHPE20234 Substitution pattern not terminated Explanation: A (?(condition)if-clause"else-clause)Explanation: The lexer couldnt find the interior construct can have at most two branches (the if-clausedelimiter of an s/// or s{}{} construct. Remember that and the else-clause). For more information, see perlre.bracketing delimiters count nesting level. Missing the Example: HPE20236 Switch (?(condition)... containsleading $ from variable $s may cause this error too many branchesExample: HPE20234 Substitution pattern not System action: Perl immediately stops interpreting theterminated file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.Operator response: No System Operator response is User response: If you want one or both to containrequired. alternation, such as using this"that"other, enclose it inUser response: Correct the substitution with a interior clustering parentheses:delimiter, so that the pattern is properly terminated. (?(condition)(?:this"that"other)"else-clause)System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable. Chapter 6. Perl for z/OS messages 77
  • 87. Routing code: Not applicable. HPE20239 switching effective gid is notDescriptor code: F- A fatal error (trappable). implementedAutomation: Not applicable. Explanation: While under the use filetest pragma, we cannot switch the real and effective UIDs or GIDs.HPE20237 Switch condition not recognized Example: HPE20239 switching effective gid is not implementedExplanation: If the argument to the(?(...)if-clause"else-clause) construct is a number, it can System action: Perl immediately stops interpreting thebe only a number. For more information, see perlre. file (before any statements are run) and exits.Example: HPE20237 Switch condition not recognized Operator response: No System Operator response is required.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. User response: Do not attempt to switch the effective GID.Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: Correct the construct by providing anumber as a argument. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20241 filename syntax OKAutomation: Not applicable. Explanation: The syntax of this particular file is fine. It is displayed when you use it as perl -c filenameHPE20238 switching effective uid is not Example: HPE20241 test.pl syntax OK implemented System action: It will compile the perl file and checkExplanation: While under the use filetest pragma, for syntax.we cannot switch the real and effective UIDs or GIDs. Operator response: No System Operator response isExample: HPE20238 switching effective uid is not required.implemented User response: If you see this message, you canSystem action: Perl immediately stops interpreting the assume that the syntax of the file is correct. You can gofile (before any statements are run) and exits. ahead and execute it.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Do not attempt to switch the effective Problem determination: No additional information.UID. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code:Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20242 syntax errorDescriptor code: F- A fatal error (trappable). Explanation: Probably means you had a syntax error.Automation: Not applicable. Common reasons include: keyword is misspelled, semicolon is missing, comma is missing, an opening or closing parenthesis is missing, an opening or closing78 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 88. brace is missing, a closing quote is missing. Example: HPE20244 System V msgxxx is not implemented on this machineExample: HPE20242 syntax error System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Do not use the message queueUser response: Check the syntax and correct it. functions provided by System V.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: The only way to figure out Problem determination: No additional information.whats triggering the error is to call perl -c repeatedly,deleting half the program each time to see if the error Source: Perlgoes away. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20245 System V semxxx is not implemented on this machineHPE20243 System V IPC is not implemented on Explanation: System V semget, semctl and other this machine functions are not implemented on your machine.Explanation: The System V interprocess Example: HPE20245 System V semxxx is notcommunication mechanisms like semaphores, message implemented on this machinequeues and shared memory, are not implemented on System action: Perl immediately stops interpreting theyour machine. file (before any statements are run) and exits.Example: HPE20243 System V IPC is not Operator response: No System Operator response isimplemented on this machine required.System action: Perl immediately stops interpreting the User response: Do not use the semaphore functionsfile (before any statements are run) and exits. provided by System V.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Do not use functions related to Problem determination: No additional information.System V IPC. Source: PerlSystem programmer response: No SystemProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20246 -T and -B not implemented onDescriptor code: F- A fatal error (trappable). filehandlesAutomation: Not applicable. Explanation: Perl cant peek at the stdio buffer of filehandles when it doesnt know about your kind ofHPE20244 System V msgxxx is not implemented stdio. Youll have to use a filename instead. on this machine Example: HPE20246 -T and -B not implemented onExplanation: System V msgrcv, msgctl and other filehandlesfunctions are not implemented on your machine. System action: Perl immediately stops interpreting the Chapter 6. Perl for z/OS messages 79
  • 89. file (before any statements are run) and exits. 1; ... local $[ = 0; local $[ = 1; ...Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Use -T and -B on filename instead of Problem determination: No additional information.filehandle Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20249 The crypt() function is unimplementedDescriptor code: F- A fatal error (trappable). due to excessive paranoia.Automation: Not applicable. Explanation: Configure couldnt find the crypt() function on your machine, probably because your vendor didnt supply it.HPE20247 Target of goto is too deeply nested Example: HPE20249 The crypt() function isExplanation: You tried to use goto to reach a label unimplemented due to excessive paranoia.that was too deeply nested for Perl to reach. System action: Perl immediately stops interpreting theExample: HPE20247 Target of goto is too deeply file (before any statements are run) and exits.nested Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Do not use the crypt() function if it isOperator response: No System Operator response is not implemented on your machine.required. System programmer response: No SystemUser response: Avoid using a deeply nested goto, so Programmer response is required.that Perl can easily resolve it. Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20250 The stat preceding -l _ wasnt an lstatAutomation: Not applicable. Explanation: It does not make sense to test the current stat buffer for symbolic linkhood if the last statHPE20248 That use of $[ is unsupported that wrote to the stat buffer already went past theExplanation: Assignment to $[ is now strictly symlink to get to the real file.circumscribed, and interpreted as a compiler Example: HPE20250 The stat preceding -l _ wasnt andirective.This is to prevent the problem of one module lstatchanging the array base out from under another moduleinadvertently. For more information, see perlvar/$[. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Example: HPE20248 That use of $[ is unsupported Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Use an actual file name instead.Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: You can say only one of $[ = 0; $[ =80 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 90. Problem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20254 thread failed to start:strAutomation: Not applicable. Explanation: The entry point function of threads->create() failed for some reasonHPE20251 The stat preceding lstat() wasnt an lstat In the message text:Explanation: It does not make sense to test the strcurrent stat buffer for symbolic linkhood if the last stat The str explains the reason, as why the threadthat wrote to the stat buffer already went past the failed to start.symlink to get to the real file. Example: HPE20254 thread failed to start: Usage:Example: HPE20251 The stat preceding lstat() wasnt Thread::Signal::_threadpid()an lstat System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Use this particular function in theUser response: Use an actual file name instead. format as specified in the Usage part of the error.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20252 The unique attribute may only be HPE20255 times not implemented applied to our variables Explanation: Your version of the C library apparentlyExplanation: Currently this attribute is not supported doesnt do times()on my or sub declarations. For more information, see Example: HPE20255 times not implementedperlfunc/our. System action: Perl immediately stops interpreting theExample: HPE20252 The unique attribute may only file (before any statements are run) and exits.be applied to our variables Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Dont use the times function.Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: Do not use the unique attribute on myand sub. Use it only on our. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable). Chapter 6. Perl for z/OS messages 81
  • 91. Automation: Not applicable. HPE20258 Too many args to syscal Explanation: Perl supports a maximum of 14HPE20256 Too deeply nested ()-groups in function arguments to syscall().Explanation: Your pack or unpack template contains Example: HPE20258 Too many args to syscal()-groups with a very deep nesting level. System action: Perl immediately stops interpreting theIn the message text: file (before any statements are run) and exits.function Operator response: No System Operator response is The function will be pack or unpack. required.Example: HPE20256 Too deeply nested ()-groups in User response: Limit the number of arguments to 14%s to syscall().System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required. Source: PerlUser response: Correct the template with propernesting. Module: Not applicable.System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.Source: PerlModule: Not applicable. HPE20259 Too many arguments for functionRouting code: Not applicable. Explanation: The function requires fewer arguments than you specified.Descriptor code: F- A fatal error (trappable). In the message text:Automation: Not applicable. function The function name.HPE20257 Too few args to syscall Example: HPE20259 Too many arguments for packExplanation: There has to be at least one argumentto syscall() to specify the system call to call. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Example: HPE20257 Too few args to syscall Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Check the limit of arguments for theOperator response: No System Operator response is function and provide only that number of arguments.required. System programmer response: No SystemUser response: Provide the proper number of Programmer response is required.arguments to syscall(). Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable.82 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 92. HPE20260 Transliteration pattern not terminated HPE20262 descriptor trapped by operation maskExplanation: The lexer couldnt find the interior Explanation: You tried to use an operator from a Safedelimiter of a tr/// or tr[][] or y/// or y[][] construct. compartment in which its disallowed. For more information, see Safe.Example: HPE20260 Transliteration pattern notterminated In the message text:System action: Perl immediately stops interpreting the descriptorfile (before any statements are run) and exits. opcode descriptor.Operator response: No System Operator response is Example: HPE20262 pushmark trapped by operationrequired. maskUser response: Correct the tranliteration by providing System action: Perl immediately stops interpreting thecorrect interior delimiter. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: Missing the leading $ from User response: Avoid using an operator in the Safevariables $tr or $y may cause this error. Compartment.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable.HPE20261 Transliteration replacement not Descriptor code: F- A fatal error (trappable). terminated Automation: Not applicable.Explanation: The lexer couldnt find the final delimiterof a tr///, tr[][], y/// or y[][] construct. HPE20263 truncate not implementedExample: HPE20261 Transliteration replacement not Explanation: Your machine doesnt implement a fileterminated truncation mechanism that Configure knows about.System action: Perl immediately stops interpreting the Example: HPE20263 truncate not implementedfile (before any statements are run) and exits. System action: Perl immediately stops interpreting theOperator response: No System Operator response is file (before any statements are run) and exits.required. Operator response: No System Operator response isUser response: Correct the transliteration by providing required.the final delimiter. User response: Do not use the truncate function.System programmer response: No SystemProgrammer response is required. System programmer response: No System Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable. Chapter 6. Perl for z/OS messages 83
  • 93. Source: PerlHPE20264 Type of arg num to function must be var (not descriptor) Module: Not applicable.Explanation: This function requires the argument in Routing code: Not applicable.that position to be of a certain type. Arrays must be@NAME or @{EXPR}. Hashes must be %NAME or Descriptor code: F- A fatal error (trappable).%{EXPR}. For more information, see perlref. Automation: Not applicable.In the message text:num HPE20266 Unable to create sub named "sub" Argument Position Explanation: You attempted to create or access afunction subroutine with an illegal name. Any function which takes array or hash as In the message text: argument. subvar The subroutine name. A var will be a hash or an array. Example: HPE20266 Unable to create sub nameddescriptor "$foo" Opcode Descriptor System action: Perl immediately stops interpreting theExample: HPE20264 Type of arg 1 to push must be file (before any statements are run) and exits.array (not scalar dereference) Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Check the name of the subroutineOperator response: No System Operator response is and correct it.required. System programmer response: No SystemUser response: No implicit dereferencing is Programmer response is required.allowed--use the {EXPR} forms as an explicitdereference. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20267 Undefined format "str"calledAutomation: Not applicable. Explanation: The format indicated doesnt seem to exist. For more information, see perlform.HPE20265 umask not implemented In the message text:Explanation: Your machine doesnt implement the strumask function and you tried to use it to restrict The illegal format.permissions for yourself (EXPR & 0700). Example: HPE20267 Undefined format "STDOUT"Example: HPE20265 umask not implemented calledSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Do not use the umask function. User response: Correct the format with the correct field definitions.System programmer response: No SystemProgrammer response is required. System programmer response: No System Programmer response is required.Problem determination: No additional information.84 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 94. Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20268 Undefined sort subroutine "sub" called Automation: Not applicable.Explanation: The sort comparison routine specifieddoesnt seem to exist. For more information, see HPE20270 Undefined subroutine calledperlfunc/sort. Explanation: The anonymous subroutine youre tryingIn the message text: to call hasnt been defined, or if it was, it has since been undefined.sub A Subroutine Example: HPE20270 Undefined subroutine calledExample: HPE20268 Undefined sort subroutine System action: Perl immediately stops interpreting the"main::langcmp" called file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.Operator response: No System Operator response is User response: Provide the definition for therequired. subroutine.User response: Correct the way that the sort System programmer response: No Systemsubroutine was defined. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20271 Undefined subroutine in sort Explanation: The sort comparison routine specified isHPE20269 Undefined subroutine &"sub" called declared but doesnt seem to have been defined yet. For more information, see perlfunc/sort.Explanation: The subroutine indicated hasnt beendefined, or if it was, it has since been undefined Example: HPE20271 Undefined subroutine in sortIn the message text: System action: Perl immediately stops interpreting the file (before any statements are run) and exits.sub The subroutine name. Operator response: No System Operator response is required.Example: HPE20269 Undefined subroutine&main::max called User response: Provide the definition for the declared sort subroutine.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. System programmer response: No System Programmer response is required.Operator response: No System Operator response isrequired. Problem determination: No additional information.User response: Provide the definition for the Source: Perlsubroutine. Module: Not applicable. Chapter 6. Perl for z/OS messages 85
  • 95. Routing code: Not applicable. HPE20274 Unknown open() mode modeDescriptor code: F- A fatal error (trappable). Explanation: The second argument of 3-argumentAutomation: Not applicable. open() is not among the list of valid modes: < , > , >> , +< , +> , +>> , -" , "- , <& , < >& .HPE20272 Undefined top format "str" called In the message text:Explanation: The format indicated doesnt seem to modeexist. For more information, see perlform. Invalid modeIn the message text: Example: HPE20274 Unknown open() mode <<-str System action: Perl immediately stops interpreting the The illegal top format. file (before any statements are run) and exits.Example: HPE20272 Undefined top format Operator response: No System Operator response is"STDOUT_TOP" called required.System action: Perl immediately stops interpreting the User response: Provide the correct file openingfile (before any statements are run) and exits. modes as specified.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Correct the top format. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20275 Bad name after sym strAutomation: Not applicable. Explanation: You started to name a symbol by using a package prefix, and then didnt finish the symbol.HPE20273 Unknown BYTEORDER In the message text:Explanation: There are no byte-swapping functions for syma machine with this byte order. The symbol name.Example: HPE20273 Unknown BYTEORDER str The str may be " " or "::" .System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Example: HPE20275 Bad name after mypack::Operator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Dont use byte orders other than Little Operator response: No System Operator response isEndian and Big Endian. required.System programmer response: No System User response: You cannot interpolate outside ofProgrammer response is required. quotes, so $var = myvar; $sym = mypack::$var; is not the same as $var = myvar; $sym = "mypack::$var"; IfProblem determination: No additional information. you want to name a symbol with a package prefix, itSource: Perl should be in " ".Module: Not applicable. System programmer response: No System Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable.86 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 96. Routing code: Not applicable. rest of the string, until possible E).Descriptor code: F- A fatal error (trappable). System programmer response: No System Programmer response is required.Automation: Not applicable. Problem determination: No additional information.HPE20276 Bareword "str" not allowed while "strict Source: Perl subs" in use Module: Not applicable.Explanation: With "strict subs" in use, a bareword is Routing code: Not applicable.only allowed as a subroutine identifier, in curly bracketsor to the left of the "=>" symbol. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.str The string is bareword. HPE20278 Cant locate object method "method" via package "pkg"Example: HPE20276 Bareword "foo" not allowed while"strict subs" in use Explanation: You called a method correctly, and it correctly indicated a package functioning as a class, butSystem action: Perl immediately stops interpreting the that package doesnt define that particular method, norfile (before any statements are run) and exits. does any of its base classes. For more information, seeOperator response: No System Operator response is perlobj.required. In the message text:User response: Avoid using bareword when using methodstrict subs.You need to predeclare a subroutine if the The method name.bareword is subroutine name. pkgSystem programmer response: No System The package name.Programmer response is required. Example: HPE20278 Cant locate object methodProblem determination: No additional information. "hello" via package "foo"Source: Perl System action: Perl immediately stops interpreting theModule: Not applicable. file (before any statements are run) and exits.Routing code: Not applicable. Operator response: No System Operator response is required.Descriptor code: F- A fatal error (trappable). User response: Check whether the method is definedAutomation: Not applicable. in this package. If it is not, then use the correct package.HPE20277 Cant find Unicode property definition System programmer response: No System "str" Programmer response is required.Explanation: The Unicode property you used is not Problem determination: No additional information.among the list of Unicode properties. Source: PerlIn the message text: Module: Not applicable.str The definition of unicode property. Routing code: Not applicable.Example: HPE20277 Cant find Unicode property Descriptor code: F- A fatal error (trappable).definition "Ltter" Automation: Not applicable.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. HPE20279 Cant return array to lvalue scalarOperator response: No System Operator response is contextrequired. Explanation: You tried to return a complete array fromUser response: If you did mean to use a Unicode an lvalue subroutine, but you called the subroutine in aproperty, refer to perlunicode for the list of known way that made Perl think you meant to return only oneproperties. If you didnt mean to use a Unicode property, value.escape the p, either by p (just the p) or by Qp (the Chapter 6. Perl for z/OS messages 87
  • 97. Example: HPE20279 Cant return array to lvalue System action: Perl immediately stops interpreting thescalar context file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.Operator response: No System Operator response is User response: Provide the proper label for goto.required. System programmer response: No SystemUser response: You probably meant to write Programmer response is required.parentheses around the call to the subroutine, which tell Problem determination: No additional information.Perl that the call should be in list context. Source: PerlSystem programmer response: No SystemProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20282 Identifier too longDescriptor code: F- A fatal error (trappable). Explanation: Perl limits identifiers (names of thingsAutomation: Not applicable. such as variables and functions) to about 250 characters for simple names, and somewhat more forHPE20280 Cant return hash to lvalue scalar compound names (like $A::B). Youve exceeded Perls context limits.Explanation: You tried to return a complete hash from Example: HPE20282 Identifier too longan lvalue subroutine, but you called the subroutine in a System action: Displays the warning and continuesway that made Perl think you meant to return only one interpreting the script.value. Operator response: No System Operator response isExample: HPE20280 Cant return hash to lvalue required.scalar context User response: Check whether your identifier is moreSystem action: Perl immediately stops interpreting the than 250 characters. If it is, then reduce the number offile (before any statements are run) and exits. characters so that it meets the limits.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: You probably meant to include Problem determination: No additional information.parentheses around the call to the subroutine, whichtells Perl that the call should be in list context. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20283 Illegal binary digit numDescriptor code: F- A fatal error (trappable). Explanation: You used a digit other than 0 or 1 in a binary number.Automation: Not applicable. In the message text:HPE20281 goto must have label num It can be any other digit than 0 or 1.Explanation: Unlike with "next" or "last", youre notallowed to goto an unspecified destination. For more Example: HPE20283 Illegal binary digit 2information, see perlfunc/goto. System action: Perl immediately stops interpreting theExample: HPE20281 goto must have label file (before any statements are run) and exits.88 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 98. Operator response: No System Operator response is file (before any statements are run) and exits.required. Operator response: No System Operator response isUser response: For binary numbers, use 0 or 1. required.System programmer response: No System User response: Your version of Perl appears to haveProgrammer response is required. been built without this support. Talk to your Perl administrator.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20284 Illegal binary digit num ignored Automation: Not applicable.Explanation: You may have tried to use a digit otherthan 0 or 1 in a binary number. Interpretation of thebinary number stopped before the offending digit. HPE20286 Illegal octal digit digit ignoredIn the message text: Explanation: You may have tried to use an 8 or 9 in an octal number. Interpretation of the octal numbernum stopped before the 8 or 9. It may be any other digit than 0 or 1. In the message text:Example: HPE20284 Illegal binary digit 3 ignored digitSystem action: Displays the warning and continues The digit will be 8 or 9.interpreting the script. Example: HPE20286 Illegal octal digit 8 ignoredOperator response: No System Operator response isrequired. System action: Displays the warning and continues interpreting the script.User response: For binary numbers, use 0 or 1. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Do not use use 8 or 9 digit in an octalProblem determination: No additional information. numberSource: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: W- A warning (optional). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20285 Illegal character char(carriage return) Descriptor code: W- A warning (optional).Explanation: Perl normally treats carriage returns in Automation: Not applicable.the program text as it would any other white space,which means you should never see this error when Perlwas built using standard options. HPE20287 Illegal octal digit digitIn the message text: Explanation: You used an 8 or 9 in an octal number.char In the message text: The char is octal value of carriage return. digitExample: HPE20285 Illegal character 015(carriage The digit will be 8 or 9.return) Example: HPE20287 Illegal octal digit 9System action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting the Chapter 6. Perl for z/OS messages 89
  • 99. file (before any statements are run) and exits. Example: HPE20289 Invalid type , in pack.Operator response: No System Operator response is System action: Displays the warning and continuesrequired. interpreting the script.User response: Do not use a 8 or 9 digit in an octal Operator response: No System Operator response isnumber. required.System programmer response: No System User response: Remove the , in the pack or unpackProgrammer response is required. function.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: W- A warning (optional).HPE20288 Invalid type char in function Automation: Not applicable.Explanation: The given character is not a valid packor unpack type. For more information, see HPE20290 Invalid type char in unpackperlfunc/pack. Explanation: The given character is not a validIn the message text: unpack type. For more information, see perlfunc/pack.char In the message text: Any invalid character. charfunction Any invalid character. The function will be pack or unpack. Example: HPE20290 Invalid type k in unpackExample: HPE20288 Invalid type z in pack System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Use a valid character for the unpackUser response: Do not use characters that are not type.valid when using the pack or unpack function. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20291 Invalid type char in packHPE20289 Invalid type , in function Explanation: The given character is not a valid packExplanation: The , is not a valid pack or unpack type type. For more information, see perlfunc/pack.but used to be ignored. In the message text:In the message text: characterfuntion Any invalid character. The function will be pack or unpack. Example: HPE20291 Invalid type m in pack90 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 100. System action: Perl immediately stops interpreting the functionfile (before any statements are run) and exits. The function will be pack_sockaddr_un or unpack_sockaddr_un.Operator response: No System Operator response isrequired. Example: HPE20293 Socket::pack_sockaddr_un not implemented on this architectureUser response: Use a valid character in pack. System action: Perl immediately stops interpreting theSystem programmer response: No System file (before any statements are run) and exits.Programmer response is required. Operator response: No System Operator response isProblem determination: No additional information. required.Source: Perl User response: Do not use the socket function.Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: F- A fatal error (trappable). Problem determination: No additional information.Automation: Not applicable. Source: Perl Module: Not applicable.HPE20292 BEGIN not safe after Routing code: Not applicable. errors--compilation aborted Descriptor code: F- A fatal error (trappable).Explanation: Perl found a BEGIN {} subroutine (or ause directive, which implies a BEGIN {}) after one or Automation: Not applicable.more compilation errors had already occurred. Since theintended environment for the BEGIN {} could not be HPE20294 leaving effective uid failedguaranteed (due to the errors), and since subsequentcode likely depends on its correct operation, Perl Explanation: While under the use filetest pragma,stopped compiling. switching the real and effective UIDs failed.Example: HPE20292 BEGIN not safe after Example: HPE20294 leaving effective uid failederrors--compilation aborted System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Do not switch the real and effectiveUser response: Remove the compilation errors and UIDs.then run the script again. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20295 leaving effective gid failedHPE20293 Socket::function not implemented on this architecture Explanation: While under the use filetest pragma, switching the real and effective GIDs failed.Explanation: This socket function is not available onyour machine. Example: HPE20295 leaving effective gid failedIn the message text: System action: Perl immediately stops interpreting the file (before any statements are run) and exits. Chapter 6. Perl for z/OS messages 91
  • 101. Operator response: No System Operator response is Source: Perlrequired. Module: Not applicable.User response: Do not switch real and effective GIDs. Routing code: Not applicable.System programmer response: No System Descriptor code: F- A fatal error (trappable).Programmer response is required. Automation: Not applicable.Problem determination: No additional information.Source: Perl HPE20299 Operation `str1: no method found,str2Module: Not applicable. argument str3str4str5str6Routing code: Not applicable. Explanation: An attempt was made to perform an overloaded operation for which no handler was defined.Descriptor code: F- A fatal error (trappable). While some handlers can be autogenerated in terms ofAutomation: Not applicable. other handlers, there is no default handler for any operation, unless the fallback overloading key is specified to be true. For more information, see overload.HPE20296 Malformed integer in [] in function In the message text:Explanation: Only digits are permitted between thebrackets enclosing a numeric repeat count. For more str1information, see perlfunc/pack. The operation.Example: HPE20296 Malformed integer in [] in pack str2 The str2 may be " " or "left ".System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. str3 The str3 may be "in overloaded package" or "hasOperator response: No System Operator response is no overloaded magic".required. str4User response: Use only numeric count. The str4 is empty or package name.System programmer response: No System str5Programmer response is required. The str5 may be " " or right argument has noProblem determination: No additional information. overloaded magic magic" or "right argument in overloaded package".Source: Perl str6Module: Not applicable. The str6 is empty or package name.Routing code: Not applicable. Example: HPE20299 Operation `cmp: no methodDescriptor code: F- A fatal error (trappable). found, left argument in overloaded package Graph::Edge, right argument in overloaded packageAutomation: Not applicable. Graph::Edge System action: Perl immediately stops interpreting theHPE20298 Number too long file (before any statements are run) and exits.Explanation: Perl limits the representation of decimal Operator response: No System Operator response isnumbers in programs to about 250 characters. Youve required.exceeded that length. User response: Define the handler for the overloadedExample: HPE20298 Number too long function.System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required. Source: PerlUser response: Try using scientific notation: "1e6"instead of "1_000_000". Module: Not applicable.System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: F- A fatal error (trappable).Problem determination: No additional information. Automation: Not applicable.92 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 102. HPE20300 Empty char{} HPE20302 Internal disasterExplanation: p and P are used to introduce a Explanation: Something went wrong in the regularnamed Unicode property. You used p or P in a regular expression parser.This is an internal error that cannotexpression without specifying the property name. be resolved by the user.In the message text: Example: HPE20302 Internal disasterchar System action: Perl immediately stops interpreting the The character p or P. file (before any statements are run) and exits.Example: HPE20300 Empty p{} Operator response: No System Operator response is required.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. User response: Because Perl is not able to determine the regular expression, you should verify the regularOperator response: No System Operator response is expression and rewrite it.required. System programmer response: No SystemUser response: Provide a Unicode property in the Programmer response is required.regex like p{Letter}. Do not keep it empty. Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: P- An internal error you should never see (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable).Automation: Not applicable. HPE20303 Variable "var" is not imported Explanation: While "use strict" was in effect, youHPE20301 Reference to nonexistent group referred to a global variable that you apparently thoughtExplanation: You used something like 7 in your was imported from another module, because somethingregular expression, but there are not at least seven sets else of the same name (usually a subroutine) isof capturing parentheses in the expression. If you exported by that module. It usually means you put thewanted to have the character with value 7 inserted into wrong funny character on the front of your variable.the regular expression, prepend a zero to make the In the message text:number at least two digits: 07. varExample: HPE20301 Reference to nonexistent group The variable name.System action: Perl immediately stops interpreting the Example: HPE20303 Variable "@a" is not importedfile (before any statements are run) and exits. System action: Perl immediately stops interpreting theOperator response: No System Operator response is file (before any statements are run) and exits.required. Operator response: No System Operator response isUser response: Correct the regular expression with required.the existing group. User response: Use unique variable names. ToSystem programmer response: No System prevent ambuguity errors, do not use duplicate variableProgrammer response is required. names in the same module even if you are importingProblem determination: Trappable errors may be from another module.trapped using the eval operator. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: F- A fatal error (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Chapter 6. Perl for z/OS messages 93
  • 103. Descriptor code: F- A fatal error (trappable). Descriptor code: S- A severe warning (default).Automation: Not applicable. Automation: Not applicable.HPE20304 (Did you mean &sub instead?) HPE20307 Value of construct can be "0"; test with defined()Explanation: You probably referred to an importedsubroutine &FOO as $FOO or some such. Explanation: In a conditional expression, you used HANDLE, <*> (glob),each(), or readdir() as a booleanIn the message text: value. Each of these constructs can return a value ofsub "0", which would make the conditional expression false. The subroutine name. That is probably not what you intended.Example: HPE20304 (Did you mean $FOO instead?) In the message text:System action: Displays the warning and continues constructinterpreting the script. The Construct.Operator response: No System Operator response is Example: HPE20307 Value of HANDLE can be "0"; testrequired. with defined()User response: Use & when you are referring to a System action: Displays the warning and continuessubroutine. interpreting the script.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: When using these constructs in conditional expressions, test their values with theSource: Perl defined operator.Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: W- A warning (optional). Problem determination: No additional information.Automation: Not applicable. Source: Perl Module: Not applicable.HPE20305 Had to create sym unexpectedly Routing code: Not applicable.Explanation: A routine asked for a symbol from a Descriptor code: W- A warning (optional).symbol table; however, the symbol was not defined inthe table so it had to be created on an emergency basis Automation: Not applicable.to prevent a core dump.In the message text: HPE20309 Eval-group in insecure regular expressionsym The symbol. Explanation: Perl detected tainted data when trying to compile a regular expression that contains the (?{ ...Example: HPE20305 Had to create len unexpectedly }) zero-width assertion, which is not safe. See perlreSystem action: Displays the warning and continues and perlsec for more information.interpreting the script. Example: HPE20309 Eval-group in insecure regularOperator response: No System Operator response is expressionrequired. System action: Perl immediately stops interpreting theUser response: Define the symbol. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Use a secure regular expression.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable.94 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 104. Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20312 UTF-16 surrogate 0xunicodeAutomation: Not applicable. Explanation: You tried to generate half of an UTF-16 surrogate by requesting a Unicode character betweenHPE20310 Junk on end of regexp the code points 0xD800 and 0xDFFF (inclusive). ThatExplanation: The regular expression parser is range is reserved exclusively for the use of UTF-16confused.This is an internal error that cannot be encoding (by having two 16-bit UCS-2 characters); butresolved by the user. Perl encodes its characters in UTF-8, so what you got is an illegal character.Example: HPE20310 Junk on end of regexp In the message text:System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. unicode The Unicode characterOperator response: No System Operator response isrequired. Example: HPE20312 UTF-16 surrogate 0xDFFE.User response: Delete any junk data that may be System action: Displays the warning and continuesincluded with the regular expression. interpreting the script.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: If you know what you are doing, you can turn off the warning by no warnings ’utf8’;. YouSource: Perl can also use the Unicode character in the range.Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: P- An internal error you should Problem determination: No additional information.never see (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20311 Eval-group not allowed at runtime, use re eval Descriptor code: W- A warning (optional).Explanation: Perl tried to compile a regular Automation: Not applicable.expression containing the (?{ ... }) zero-widthassertion at run time, as it would when the pattern HPE20313 Malformed UTF-16 surrogatecontains interpolated values. Explanation: Perl thought it was reading UTF-16Example: HPE20311 Eval-group not allowed at encoded character data but encountered a malformedruntime, use re eval Unicode surrogate.System action: Perl immediately stops interpreting the Example: HPE20313 Malformed UTF-16 surrogatefile (before any statements are run) and exits. System action: Displays the warning and continuesOperator response: No System Operator response is interpreting the script.required. Operator response: No System Operator response isUser response: Do not use zero-width assertion, even required.if you have to use another pattern like eval(). User response: Provide the correct UTF-16 character.System programmer response: No SystemProgrammer response is required. System programmer response: No System Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Chapter 6. Perl for z/OS messages 95
  • 105. Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20316 panic: swash_fetchDescriptor code: W- A warning (optional). Explanation: An internal error occurred that cannot beAutomation: Not applicable. resolved by the user. Example: HPE20316 panic: swash_fetchHPE20314 SWASHNEW didnt return an HV ref System action: Perl immediately stops interpreting theExplanation: An internal error occurred that cannot be file (before any statements are run) and exits.resolved by the user. Operator response: No System Operator response isExample: HPE20314 SWASHNEW didnt return an HV required.ref User response: Follow your local procedures forSystem action: Perl immediately stops interpreting the reporting problems to IBM.file (before any statements are run) and exits. System programmer response: No SystemOperator response: No System Operator response is Programmer response is required.required. Problem determination: No additional information.User response: Follow your local procedures forreporting problems to IBM. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: P- An internal error you shouldSource: Perl never see (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20317 panic: utf16_to_utf8: odd bytelen numDescriptor code: P- An internal error you shouldnever see (trappable). Explanation: Something tried to call utf16_to_utf8 with an odd (as opposed to even) byte length. This is anAutomation: Not applicable. internal error that cannot be resolved by the user. In the message text:HPE20315 SWASHGET didnt return result of proper length num The lengthExplanation: An internal error occurred that cannot beresolved by the user. Example: HPE20317 panic: utf16_to_utf8: odd bytelen 3.Example: HPE20315 SWASHGET didnt return resultof proper length System action: Perl immediately stops interpreting the file (before any statements are run) and exits.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Operator response: No System Operator response is required.Operator response: No System Operator response isrequired. User response: Use even byte lengths.User response: Follow your local procedures for System programmer response: No Systemreporting problems to IBM. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: P- An internal error you shouldRouting code: Not applicable. never see (trappable).Descriptor code: P- An internal error you should Automation: Not applicable.never see (trappable).96 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 106. Descriptor code: D- A deprecation (optional).HPE20318 Unicode character 0xunicode is illegal Automation: Not applicable.Explanation: Certain Unicode characters have beendesignated off-limits by the Unicode standard andshould not be generated. If you know what you are HPE20320 Using a hash as a reference isdoing, you can turn off this warning by no warnings deprecated’utf8’; . Explanation: You tried to use a hash as a reference,In the message text: as in << %foo->{"bar"} >> or << %$ref->{"hello"} >>. Versions of perl <= 5.6.1 used to allow this syntax, butunicode shouldnt have. It is now deprecated, and will be The unicode character. removed in a future version.Example: HPE20318 Unicode character 0xDFFF is Example: HPE20320 Using a hash as a reference isillegal deprecatedSystem action: Displays the warning and continues System action: Displays the warning and continuesinterpreting the script. interpreting the script.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Use characters that are allowed by User response: Do not use hash as a reference.the Unicode standard. Instead, you can use hash as %foo{"bar"}.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: W- A warning (optional). Descriptor code: D- A deprecation (optional).Automation: Not applicable. Automation: Not applicable.HPE20319 Using an array as a reference is HPE20321 NOT IMPL LINE num deprecated Explanation: The target line was not implemented.Explanation: You tried to use an array as a reference,as in << @foo->[23] >> or << @$ref->[99] >>. Versions In the message text:of perl <= 5.6.1 used to allow this syntax, but shouldnthave. It is now deprecated, and will be removed in a numfuture version. Line numberExample: HPE20319 Using an array as a reference is Example: HPE20321 NOT IMPL LINE %ddeprecated System action: Displays the warning and continuesSystem action: Displays the warning and continues interpreting the script.interpreting the script. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: Implement the target line.User response: Do not use arrays as a reference. System programmer response: No SystemInstead, use arrays such as @foo [19]. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code:Routing code: Not applicable. Chapter 6. Perl for z/OS messages 97
  • 107. Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20322 Possible precedence problem on Problem determination: No additional information. bitwise operator operator Source: PerlExplanation: Your program uses a bitwise logical Module: Not applicable.operator in conjunction with a numeric comparisonoperator, like this : if ($x & $y == 0) { ... } This Routing code: Not applicable.expression is actually equivalent to $x & ($y == 0), dueto the higher precedence of ==. This is probably not Descriptor code: W- A warning (optional).what you want. Automation: Not applicable.In the message text:operator HPE20324 defined(@array) is deprecated The operator Explanation: defined() is not usually useful on arraysExample: HPE20322 Possible precedence problem on because it checks for an undefined scalar value.bitwise & operator Example: HPE20324 defined(@array) is deprecatedSystem action: Displays the warning and continues System action: Displays the warning and continuesinterpreting the script. interpreting the script.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: If you really meant to write, disable User response: Do not use defined() with arrays. Ifthe warning, or, better yet, put the parentheses explicitly you want to see if the array is empty, use if (@array)and write $x & ($y == 0)). { # not empty } for example.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: W- A warning (optional). Descriptor code: D- A deprecation (optional).Automation: Not applicable. Automation: Not applicable.HPE20323 Useless use of function with no values HPE20325 (Maybe you should just omit theExplanation: You used the push() or unshift() function defined()?)with no arguments apart from the array, like push(@x) or Explanation: defined() is not always useful because itunshift(@foo). That wont usually have any effect on checks for an undefined scalar value.the array, so is completely useless. Example: HPE20325 (Maybe you should just omit theIn the message text: defined()?)function System action: Displays the warning and continues The function interpreting the script.Example: HPE20323 Useless use of push() with no Operator response: No System Operator response isvalues required.System action: Displays the warning and continues User response: Do not not use defined(). If you wantinterpreting the script. to obtain results similar to what defined() provides, useOperator response: No System Operator response is another function, especially in the case of array or hash.required. System programmer response: No SystemUser response: It is possible that push(@tied_array) Programmer response is required.could have some effect if the array is tied to a class that Problem determination: No additional information.implements a PUSH method. If so, you can write it aspush(@tied_array,()) to avoid this warning. Source: Perl98 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 108. Module: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: W- A warning (optional). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20326 defined(%hash) is deprecated HPE20328 panic: unexpected lvalue entersub entry via type/targ optype:opargExplanation: defined() is not usually useful on hashesbecause it checks for an undefined scalar value. Explanation: This is an internal error that cannot be resolved by the user.Example: HPE20326 defined(%hash) is deprecated In the message text:System action: Displays the warning and continuesinterpreting the script. optype op typeOperator response: No System Operator response isrequired. oparg op argumentUser response: Do not use defined() in the case ofhash. If you want to see if the hash is empty, just use Example: HPE20328 panic: unexpected lvalueif (%hash) { # not empty } for example. entersub entry via type/targ READ:fdSystem programmer response: No System System action: Perl immediately stops interpreting theProgrammer response is required. file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response is required.Source: Perl User response: Follow your local procedures forModule: Not applicable. reporting problems to IBM.Routing code: Not applicable. System programmer response: No SystemDescriptor code: D- A deprecation (optional). Programmer response is required.Automation: Not applicable. Problem determination: No additional information. Source: PerlHPE20327 panic: unexpected lvalue entersub Module: Not applicable. args: type/targ optype:oparg Routing code: Not applicable.Explanation: This is an internal error that cannot beresolved by the user. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.optype op type HPE20329 Unexpected constant lvalue entersub entry via type/targ optype:opargoparg op argument Explanation: The lvalue entered is not correct.Example: HPE20327 panic: unexpected lvalue In the message text:entersub args: type/targ READ:fd optypeSystem action: Perl immediately stops interpreting the op typefile (before any statements are run) and exits. opargOperator response: No System Operator response is op argumentrequired. Example: HPE20329 Unexpected constant lvalueUser response: Follow your local procedures for entersub entry via type/targ READ:fdreporting problems to IBM. System action: Perl immediately stops interpreting theSystem programmer response: No System file (before any statements are run) and exits.Programmer response is required. Operator response: No System Operator response isProblem determination: No additional information. required.Source: Perl Chapter 6. Perl for z/OS messages 99
  • 109. User response: Check the syntax while using the Operator response: No System Operator response islvalue with sub. required.System programmer response: No System User response: Make sure that all function names areProgrammer response is required. unique.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20330 internal error: obsolete function Automation: Not applicable. save_hints() calledExplanation: Perl tried to compile a regular HPE20332 Cant redefine unique subroutineexpression containing the (?{ ... }) zero-width functionassertion at run time, as it would when the pattern Explanation: Every function should have uniquecontains interpolated values. Because that is a security name.risk, it is not allowed. See perlre for more information. In the message text:Example: HPE20330 internal error: obsolete functionsave_hints() called function function nameSystem action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Example: HPE20332 Cant redefine unique subroutine Store.Operator response: No System Operator response isrequired. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.User response: It is not permitted, but if you still wantto do this, you can explicitly build the pattern from an Operator response: No System Operator response isinterpolated string at run time and use that in an eval(). required.System programmer response: No System User response: Use a different name for the function,Programmer response is required. because you cannot reuse function names.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20331 Cant define subroutine function (GV is Automation: Not applicable. unique)Explanation: Each function should have a unique HPE20333 panic: ck_grepname. Explanation: The program failed an internalIn the message text: consistency check trying to compile a grep.This is an internal error that cannot be resolved by the user.function function name Example: HPE20333 panic: ck_grepExample: HPE20331 Cant define subroutine func (GV System action: Perl immediately stops interpreting theis unique) file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.100 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 110. User response: Follow local procedures for reporting Source: Perlproblems to IBM. Module: Not applicable.System programmer response: No System Routing code: Not applicable.Programmer response is required. Descriptor code: W- A warning (optional).Problem determination: No additional information. Automation: Not applicable.Source: PerlModule: Not applicable. HPE20336 Useless use of sort in scalar contextRouting code: Not applicable. Explanation: You used sort in scalar context, as in :Descriptor code: P- An internal error you should my $x = sort @y; This is not very useful, and perlnever see (trappable). currently optimizes this away.Automation: Not applicable. Example: HPE20336 Useless use of sort in scalar contextHPE20334 panic: ck_split System action: Displays the warning and continues interpreting the script.Explanation: Failed an internal consistency checktrying to compile a split. This is an internal error that Operator response: No System Operator response iscannot be resolved by the user. required.Example: HPE20334 panic: ck_split User response: Do not use sort on scalars.System action: Perl immediately stops interpreting the System programmer response: No Systemfile (before any statements are run) and exits. Programmer response is required.Operator response: No System Operator response is Problem determination: No additional information.required. Source: PerlUser response: Follow local procedures for reporting Module: Not applicable.problems to IBM. Routing code: Not applicable.System programmer response: No SystemProgrammer response is required. Descriptor code: W- A warning (optional).Problem determination: No additional information. Automation: Not applicable.Source: Perl HPE20337 Useless use of var in void contextModule: Not applicable. Explanation: You did something without a side effectRouting code: Not applicable. in a context that does nothing with the return value,Descriptor code: P- An internal error you should such as a statement that doesnt return a value from anever see (trappable). block, or the left side of a scalar comma operator. Very often, this points to a failure of Perl to parse yourAutomation: Not applicable. program the way you thought it would. For example, youd get this if you mixed up your C precedence withHPE20335 Found = in conditional, should be == Python precedence and said $one, $two = 1, 2; when you meant to say ($one, $two) = (1, 2); AnotherExplanation: You used = instead of == in conditional. common error is to use ordinary parentheses toExample: HPE20335 Found = in conditional, should construct a list reference when you should be usingbe == brackets or curlies. For example, if you say $array = (1,2); when you should have said $array = [1,2]; TheSystem action: Displays the warning and continues brackets and curlies explicitly turn a list value into ainterpreting the script. scalar value, while parentheses do not. So when aOperator response: No System Operator response is parenthesized list is evaluated in a scalar context, therequired. comma is treated like the comma operator in C; that is, the left argument is thrown away, which is not what youUser response: You said if ($foo = 123) when you want. See perlre for more information. This warning willmeant if ($foo == 123) (or something like that). not be issued for numerical constants equal to 0 or 1System programmer response: No System since they are often used in statements like 1 whileProgrammer response is required. sub_with_side_effects() ; String constants that would normally evaluate to 0 or 1 are warned about.Problem determination: No additional information. Chapter 6. Perl for z/OS messages 101
  • 111. In the message text: Problem determination: No additional information.var Source: Perl The variable. Module: Not applicable.Example: HPE20337 Useless use of %s in void Routing code: Not applicable.context Descriptor code: W- A warning (optional).System action: Displays the warning and continuesinterpreting the script. Automation: Not applicable.Operator response: No System Operator response isrequired. HPE20339 Parentheses missing around "var" listUser response: Check the variable that was used. Explanation: You said something like my $foo, $bar = @_; when you meant my ($foo, $bar) = @_; RememberSystem programmer response: No System that "my", "our", and "local" bind tighter than comma.Programmer response is required. In the message text:Problem determination: No additional information. varSource: Perl The variable.Module: Not applicable. Example: HPE20339 Parentheses missing aroundRouting code: Not applicable. "$foo" list .Descriptor code: W- A warning (optional). System action: Displays the warning and continues interpreting the script.Automation: Not applicable. Operator response: No System Operator response is required.HPE20338 Applying regex to var1 will act on scalar(var2) User response: Use parentheses when using list because the comma operator takes precedence.Explanation: The pattern match (<CODE>//<code>),substitution (<CODE>s///<code>), and transliteration System programmer response: No System(<CODE>tr///<code>) operators work on scalar values. Programmer response is required.If you apply one of them to an array or a hash, it will Problem determination: No additional information.convert the array or hash to a scalar value -- the lengthof an array, or the population info of a hash -- and then Source: Perlwork on that scalar value. This is probably not what youmeant to do. See perlfunc/grep and perlfunc/map for Module: Not applicable.alternatives. Routing code: Not applicable.In the message text: Descriptor code: W- A warning (optional).regex Automation: Not applicable. The Regular expression can be pattern match, substitution or transliteration. HPE20340 Bareword found in conditionalvar1 The variable can be array or hash. Explanation: The compiler found a bareword where it expected a conditional, which often indicates that an ""var2 or && was parsed as part of the last argument of the The variable can be scalar. previous construct; for example: open FOO "" die. ItExample: HPE20338 Applying substitution to array will may also indicate a misspelled constant that has beenact on scalar(@array). interpreted as a bareword: use constant TYPO => 1; if (TYOP) { print "foo" }System action: Displays the warning and continuesinterpreting the script. Example: HPE20340 Bareword found in conditionalOperator response: No System Operator response is System action: Displays the warning and continuesrequired. interpreting the script.User response: Check whether you are using (pattern Operator response: No System Operator response ismatch, substitution or transliteration) regular expression required.on scalar values. If you are, then do not use it. User response: Check the expression beforeSystem programmer response: No System compiling. Use strict pragma to avoid such errors.Programmer response is required.102 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 112. System programmer response: No System by dropping the () prototype (which changes callingProgrammer response is required. semantics, so beware) or by thwarting the inlining mechanism in some other way, such as sub not_inlinedProblem determination: No additional information. () { 23 if $]; }.Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: W- A warning (optional). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20341 Runaway prototype Descriptor code: S- A severe warning (default).Explanation: Subroutine complains if it isnt supplied Automation: Not applicable.with parameters matching some pre-specified template.Example: HPE20341 Runaway prototype HPE20343 Subroutine sub redefinedSystem action: Displays the warning and continues Explanation: You redefined a subroutine.interpreting the script. In the message text:Operator response: No System Operator response isrequired. sub The Subroutine.User response: Check the parameters to thesubroutine. Example: HPE20343 Subroutine sub() redefinedSystem programmer response: No System System action: Displays the warning and continuesProgrammer response is required. interpreting the script.Problem determination: No additional information. Operator response: No System Operator response is required.Source: Perl User response: To suppress this warning, sayModule: Not applicable. {Routing code: Not applicable. no warnings ’redefine’; eval "sub name { ... }";Descriptor code: W- A warning (optional). }Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20342 Constant subroutine sub redefined Problem determination: No additional information.Explanation: You redefined a subroutine which had Source: Perlpreviously been eligible for inlining. Seeperlsub/"Constant Functions" for commentary and Module: Not applicable.workarounds. Routing code: Not applicable.In the message text: Descriptor code: W- A warning (optional).sub Automation: Not applicable. The subroutine.Example: HPE20342 Constant subroutine sub() HPE20344 Use of -l on filehandle filehandleredefined Explanation: A filehandle represents an opened file,System action: Displays the warning and continues and when you opened the file it already went past anyinterpreting the script. symlink you are presumably trying to look for. TheOperator response: No System Operator response is operation returned undef.required. In the message text:User response: Previously compiled invocations of filehandlethe function will still be using the old value of the The filehandle.function. If you need to be able to redefine thesubroutine, you need to ensure that it isnt inlined, either Example: HPE20344 Use of -l on filehandle FOO Chapter 6. Perl for z/OS messages 103
  • 113. System action: Displays the warning and continues Example: HPE20346 More than one argument to `<&interpreting the script. openOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Use a filename instead. Operator response: No System Operator response is required.System programmer response: No SystemProgrammer response is required. User response: In the modes argument add the piped open mode.Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: W- A warning (optional). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).HPE20345 panic: sysopen with multiple args Automation: Not applicable.Explanation: This is an internal error that cannot beresolved by the user. HPE20347 Unrecognized signal name "signal"Example: HPE20345 panic: sysopen with multipleargs Explanation: You specified a signal name to the kill() function that was not recognized. Issue kill –l in yourSystem action: Perl immediately stops interpreting the shell to see the valid signal names on your system.file (before any statements are run) and exits. In the message text:Operator response: No System Operator response isrequired. signal Signal name which is not recognized from theUser response: Follow your local procedures for system.reporting problems to IBM. Example: HPE20347 Unrecognized signal nameSystem programmer response: No System "sigtra"Programmer response is required. System action: Perl immediately stops interpreting theProblem determination: No additional information. file (before any statements are run) and exits.Source: Perl Operator response: No System Operator response isModule: Not applicable. required.Routing code: Not applicable. User response: Use a signal name that has already been defined.Descriptor code: P- An internal error you shouldnever see (trappable). System programmer response: No System Programmer response is required.Automation: Not applicable. Problem determination: No additional information.HPE20346 More than one argument to mode& Source: Perl open Module: Not applicable.Explanation: The open function has been asked to Routing code: Not applicable.open multiple files. This can happen if you are trying toopen a pipe to a command that takes a list of Descriptor code: F- A fatal error (trappable).arguments, but have forgotten to specify a piped open Automation: Not applicable.mode. See perlfun for more information.In the message text:mode The mode.104 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 114. HPE20348 More than one argument to >mode HPE20350 function not implemented open Explanation: You tried to do something with a functionExplanation: The open function has been asked to beginning with "sem", "shm", or "msg" but System Vopen multiple files. This can happen if you are trying to IPC is not implemented in your machine.open a pipe to a command that takes a list of In the message text:arguments, but have forgotten to specify a piped openmode. See perlfunc/open for more information. function The function.Example: HPE20348 More than one argument to >-open Example: HPE20350 sem not implementedSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: In the modes argument add the piped User response: In some machines, the functionalityopen mode. may exist but not be configured, so configure the machine before processing. For help, consult yourSystem programmer response: No System system support.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20349 More than one argument to <mode open HPE20351 No code specified for -eExplanation: The open function has been asked toopen multiple files. This can happen if you are trying to Explanation: The -e option was specified, but thereopen a pipe to a command that takes a list of was no code for it to execute.arguments, but have forgotten to specify a piped openmode. See perlfunc/open for more information. Example: HPE20351 No code specified for -eExample: HPE20349 More than one argument to <- System action: Perl immediately stops interpreting theopen file (before any statements are run) and exits.System action: Perl immediately stops interpreting the Operator response: No System Operator response isfile (before any statements are run) and exits. required.Operator response: No System Operator response is User response: Since the -e option stands forrequired. execution, it should follow the expression to execute. Therefore, make sure you have provided an expressionUser response: In the modes argument add the piped followed by -e option.open mode. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. Chapter 6. Perl for z/OS messages 105
  • 115. HPE20352 No directory specified for -I HPE20354 POSIX class [:char_seq:] unknownExplanation: Directory not mention for -I option. Explanation: The class in the character class [: :] syntax is unknown. See perlre for more information.Example: HPE20352 No directory specified for -I In the message text:System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. char_seq The character sequence.Operator response: No System Operator response isrequired. Example: HPE20354 POSIX class [: :] unknownUser response: When using the -l option, specify a System action: Perl immediately stops interpreting thedirectory. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: The POSIX character classes do not have the is prefix the corresponding C interfaces have:Source: Perl in other words, its [[:print:]],not isprint.Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: F- A fatal error (trappable). Problem determination: No additional information.Automation: Not applicable. Source: Perl Module: Not applicable.HPE20353 package version vers1 required--this is Routing code: Not applicable. only version vers2 Descriptor code: F- A fatal error (trappable).Explanation: You are trying to include a package thatis not allowed in the version of Perl you are using. Automation: Not applicable.In the message text: HPE20355 POSIX syntax [char_seq] is reserved forpackage future extensions package name Explanation: Within regular expression charactervers1 classes ([]) the syntax beginning with "[%c" and ending Required version number with "%c]" is reserved for future extensions. See perlrevers2 for more information. Current version number In the message text:Example: HPE20353 File::Spec version 0.08 char_seqrequired--this is only version 0.87 The character sequence.System action: Perl immediately stops interpreting the Example: HPE20355 POSIX syntax [%c %c] isfile (before any statements are run) and exits. reserved for future extensions .Operator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Use the version of Perl that allows Operator response: No System Operator response isthe package you want to include. required.System programmer response: No System User response: If you need to represent thoseProgrammer response is required. character sequences inside a regular expressionProblem determination: No additional information. character class, just quote the square brackets with the backslash: "[%c" and "%c]".Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable.106 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 116. Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.HPE20356 POSIX syntax [char_seq] belongs inside character classes HPE20358 suidperl is no longer needed since theExplanation: The character class constructs [: :], [= =], kernel can now execute setuid perland [. .] go inside character classes, the [] are part of scripts securely.the construct, for example:/[012[:alpha:]345]/. Note that Explanation: Suidperl is not required to run the perl.[= =] and [. .] are not currently implemented; they are Normal user can only run it SUID is been disabled.simply placeholders for future extensions and will causefatal errors. See perlre for more information. Example: HPE20358 suidperl is no longer needed since the kernel can now execute setuid perl scriptsIn the message text: securely.char_seq System action: Perl immediately stops interpreting the The character sequence. file (before any statements are run) and exits.Example: HPE20356 POSIX syntax [%c %c] belongs Operator response: No System Operator response isinside character classes required.System action: Displays the warning and continues User response: If you get this error then run the perlinterpreting the script. normally no need of using suidperl.Operator response: No System Operator response is System programmer response: No Systemrequired. Programmer response is required.User response: Do not use character class constructs Problem determination: No additional information.[: :], [= =], and [. .] outside a character class. Source: PerlSystem programmer response: No SystemProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable. HPE20359 Trailing Descriptor code: W- A warning (optional). Explanation: The regular expression ends with anAutomation: Not applicable. unbackslashed backslash. See perlre for more information.HPE20357 shm I/O not implemented Example: HPE20359 Trailing Explanation: You dont have System V shared System action: Perl immediately stops interpreting thememory IPC on your system. file (before any statements are run) and exits.Example: HPE20357 shm I/O not implemented Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Check the regular expression andOperator response: No System Operator response is add backslash, if one is needed.required. System programmer response: No SystemUser response: The functionality may exist but not be Programmer response is required.configured. Consult your system support. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable. Chapter 6. Perl for z/OS messages 107
  • 117. Descriptor code: F- A fatal error (trappable). HPE20362 Ambiguous call resolved asAutomation: Not applicable. CORE::sub(), keyword Explanation: A subroutine that you declared has theHPE20360 Allocation too large:datasize same name as a Perl keyword, and you have used the name without qualification for calling one or the other.Explanation: You cant allocate more than 64K on an Perl decided to call the builtin because the subroutine isMS-DOS machine. not imported. To force interpretation as a subroutineIn the message text: call, either put an ampersand before the subroutine name, or qualify the name with its package.datasize Alternatively, you can import the subroutine (or pretend Size of data in bytes. that its imported with the use subs,/code> pragma). ToExample: HPE20360 Allocation too large:0xfffe silently interpret it as the Perl operator, use the ,code>CORE:: prefix on the operator (e.g.System action: Perl immediately stops interpreting the CORE::log($x)) or declare the subroutine to be anfile (before any statements are run) and exits. object method. (See perlsub/"Subroutine Attributes" forOperator response: No System Operator response is more information.)required. In the message text:User response: Check the system configuration and subchange the allocation. SubroutineSystem programmer response: No System keywordProgrammer response is required. KeywordProblem determination: No additional information. Example: HPE20362 Ambiguous call resolved asSource: Perl CORE::sub(), subModule: Not applicable. System action: Displays the warning and continues interpreting the script.Routing code: Not applicable. Operator response: No System Operator response isDescriptor code: X- A very fatal error (non-trappable). required.Automation: Not applicable. User response: Because the subroutine name was the same as the keyword name, either use a different name for the subroutine or put an ampersand in front ofHPE20361 Allocation too large:datasize it.Explanation: You cant allocate more than 64K on an System programmer response: No SystemMS-DOS machine. Programmer response is required.In the message text: Problem determination: No additional information.datasize Source: Perl Size of data in bytes. Module: Not applicable.Example: HPE20361 Allocation too large:0xffff Routing code: Not applicable.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Descriptor code: W- A warning (optional).Operator response: Automation: Not applicable.User response: Check the system configuration andchange the allocation. HPE20363 Ambiguous use of -sub resolved as -&sub()System programmer response: Explanation: You said something that may not beProblem determination: No additional information. interpreted the way you thought.Source: Perl In the message text:Module: subRouting code: Subroutine.Descriptor code: X- A very fatal error (non-trappable). Example: HPE20363 Ambiguous use of -FOO resolved as -&FOO()Automation:108 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 118. System action: Displays the warning and continues In the message text:interpreting the script. char1Operator response: No System Operator response is Funny Characterrequired. subUser response: Make the use of sub more clear by Subroutinesupplying a missing quote, operator, parenthesis pair or char2declaration. Constant CharacterSystem programmer response: No System Example: HPE20365 Ambiguous use of #{sub[}Programmer response is required. resolved to #sub[Problem determination: No additional information. System action: Displays the warning and continuesSource: Perl interpreting the script.Module: Not applicable. Operator response: No System Operator response is required.Routing code: Not applicable. User response: If you need to represent thoseDescriptor code: W- A warning (optional). character sequences inside a regular expressionAutomation: Not applicable. character class, just quote the square brackets with the backslash: "[%c" and "%c]".HPE20364 Ambiguous use of char resolved as System programmer response: No System operator char Programmer response is required.Explanation: You said something that may not be Problem determination: No additional information.interpreted the way you thought. Source: PerlIn the message text: Module: Not applicable.char Routing code: Not applicable. Character. Descriptor code: W- A warning (optional).Example: HPE20364 Ambiguous use of * resolved asoperator * Automation: Not applicable.System action: Displays the warning and continuesinterpreting the script. HPE20366 Ambiguous use of char{sub} resolved to charsubOperator response: No System Operator response isrequired. Explanation: Within regular expression character classes ([]) the syntax beginning with "[%c" and endingUser response: Make the use of char clear by with "%c]" is reserved for future extensions. The <--supplying a missing quote, operator, parenthesis pair or HERE shows in the regular expression about where thedeclaration. problem was discovered. See perlre for moreSystem programmer response: No System information.Programmer response is required. In the message text:Problem determination: No additional information. charSource: Perl Funny CharacterModule: Not applicable. sub SubroutineRouting code: Not applicable. Example: HPE20366 Ambiguous use of #{sub}Descriptor code: W- A warning (optional). resolved to #subAutomation: Not applicable. System action: Displays the warning and continues interpreting the script.HPE20365 Ambiguous use of char1{subchar2} Operator response: No System Operator response is resolved to char1subchar2 required.Explanation: Within regular expression character User response: If you need to represent thoseclasses ([]), the syntax beginning with "[%c" and ending character sequences inside a regular expressionwith "%c]" is reserved for future extensions. See perlre character class, just quote the square brackets with thefor more information. backslash: "[%c" and "%c]". Chapter 6. Perl for z/OS messages 109
  • 119. System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Give a numeric value to the argument.Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: W- A warning (optional). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20367 Argument "str" isnt numeric in str1 Descriptor code: W- A warning (optional).Explanation: The indicated string was fed as anargument to an operator that expected a numeric value Automation: Not applicable.instead.In the message text: HPE20369 Argument list not closed for PerlIO layer "str"str String Explanation: When pushing a layer with arguments onto the Perl I/O system you forgot the ) that closes thestr1 argument list. (Layers take care of transforming data String between external and internal representations.) PerlExample: HPE20367 Argument "foo" isnt numeric in stopped parsing the layer list at this point and did notfoo attempt to push this layer.System action: Displays the warning and continues In the message text:interpreting the script. strOperator response: No System Operator response is String will be a layer.required. Example: HPE20369 Argument list not closed forUser response: Use a numeric value. PerlIO layer "stdio"System programmer response: No System System action: Displays the warning and continuesProgrammer response is required. interpreting the script.Problem determination: No additional information. Operator response: No System Operator response is required.Source: Perl User response: Use ) and close the list. It may beModule: Not applicable. the result of the value of the environment variableRouting code: Not applicable. PERLIO.Descriptor code: W- A warning (optional). System programmer response: No System Programmer response is required.Automation: Not applicable. Problem determination: No additional information.HPE20368 Argument "str" isnt numeric Source: PerlExplanation: The indicated string was fed as an Module: Not applicable.argument to an operator that expected a numeric value Routing code: Not applicable.instead. Descriptor code: W- A warning (optional).In the message text: Automation: Not applicable.str String HPE20370 Array @var missing the @ in argumentExample: HPE20368 Argument "bar" isnt numeric num of descriptor()System action: Displays the warning and continues Explanation: In previous versions of Perl, you wereinterpreting the script. able to omit the @ on array names in some spots. However, this feature is now deprecated.110 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 120. In the message text: Module: Not applicable.var Routing code: Not applicable. Array type variable Descriptor code: D- A deprecation (optional).num Automation: Not applicable. Number of Argumentsdescriptor HPE20372 assertion botched (str1?): str2 Descriptor type filename:nExample: HPE20370 Array @ash missing the @ in Explanation: The malloc package that comes withargument 3 of null operation() Perl had an internal failure. This is an internal error thatSystem action: Displays the warning and continues cannot be resolved by the user.interpreting the script. In the message text:Operator response: No System Operator response is str1required. str1 can be dignostics messageUser response: Use @ when referring to arrays. str2System programmer response: No System The code which generated dignostics messageProgrammer response is required. filenameProblem determination: No additional information. file nameSource: Perl n line numberModule: Not applicable. Example: HPE20372 assertion botched (chunks tail overwrite?): ((unsigned int *)((caddr_t)ovp + nb))[-1] ==Routing code: Not applicable. 0x55555555 (malloc.c:2226)Descriptor code: D- A deprecation (optional). System action: Perl immediately stops interpreting theAutomation: Not applicable. file (before any statements are run) and exits. Operator response: No System Operator response isHPE20371 Hash %var missing the % in argument required. num of descriptor() User response: Follow local procedures for reportingExplanation: Previous versions of Perl let you omit a problem to IBM.the % on hash names in some spots. This feature is System programmer response: No Systemnow deprecated. Programmer response is required.In the message text: Problem determination: No additional information.var Source: Perl Hash type variable Module: Not applicable.num Number of Arguments Routing code: Not applicable.descriptor Descriptor code: P- An internal error you should Descriptor type never see (trappable).Example: HPE20371 Hash %ash missing the % in Automation: Not applicable.argument 3 of null operation()System action: Displays the warning and continues HPE20373 assertion botched (interpreting the script. Explanation: The malloc package that comes withOperator response: No System Operator response is Perl had an internal failure. This is an internal error thatrequired. cannot be resolved by the user.User response: Use %% when referring to arrays. Example: HPE20373 assertion botched (System programmer response: No System System action: Perl immediately stops interpreting theProgrammer response is required. file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response is required.Source: Perl Chapter 6. Perl for z/OS messages 111
  • 121. User response: Follow local procedures for reporting file (before any statements are run) and exits.problems to IBM. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Follow local procedures for reportingProblem determination: No additional information. problems to IBM.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: P- An internal error you shouldnever see (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: P- An internal error you shouldHPE20374 A thread exited while num threads were never see (trappable). running Automation: Not applicable.Explanation: When using threaded Perl, a thread (notnecessarily the main thread) exited while there were still HPE20376 Attempt to free non-existent sharedother threads running. See perl/threads for more string str1str2information. Explanation: Perl maintains a reference countedIn the message text: internal table of strings to optimize the storage andnum access of hash keys and other strings. This is an Number of threads internal error that cannot be resolved by the user.Example: HPE20374 A thread exited while 3 threads In the message text:were running str1System action: Displays the warning and continues String will be Hex Key.interpreting the script. str2Operator response: No System Operator response is String will be UTF or empty stringrequired. Example: HPE20376 Attempt to free non-existentUser response: Collect the return values of the shared string str" "created threads by joining them before exiting from the System action: Perl immediately stops interpreting themain thread. file (before any statements are run) and exits.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Do not decrement the reference countSource: Perl of a string that is not in the table.Module: Not applicable. System programmer response: No System Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: W- A warning (optional). Source: PerlAutomation: Not applicable. Module: Not applicable.HPE20375 Attempt to free unreferenced glob Routing code: Not applicable. pointers Descriptor code: P- An internal error you shouldExplanation: The reference counts got confused on never see (trappable).symbol aliases. This is an internal error that cannot be Automation: Not applicable.resolved by the user.Example: HPE20375 Attempt to free unreferencedglob pointersSystem action: Perl immediately stops interpreting the112 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 122. System programmer response: No SystemHPE20377 Attempt to free non-arena SV: 0xaddr Programmer response is required.Explanation: All SV objects are supposed to be Problem determination: No additional information.allocated from arenas that will be garbage-collected onexit. An SV was discovered to be outside any of those Source: Perlarenas. "This is an internal error that cannot beresolved by the user. Module: Not applicable.In the message text: Routing code: Not applicable.addr Descriptor code: W- A warning (optional). Memory address. Automation: Not applicable.Example: HPE20377 Attempt to free non-arena SV:0x123456 HPE20379 Attempt to free temp prematurely: SVSystem action: Perl immediately stops interpreting the 0xaddrfile (before any statements are run) and exits. Explanation: Mortalized values are supposed to beOperator response: No System Operator response is freed by the free_tmps() routine. It indicates thatrequired. something else is freeing the SV before the free_tmps() routine gets a chance, which means that theUser response: Follow your local procedures for free_tmps() routine will be freeing an unreferencedreporting problems to IBM. scalar when it does try to free it.System programmer response: No System In the message text:Programmer response is required. addrProblem determination: No additional information. Memory address.Source: Perl Example: HPE20379 Attempt to free temp prematurely: SV 0x567894Module: Not applicable. System action: Displays the warning and continuesRouting code: Not applicable. interpreting the script.Descriptor code: P- An internal error you should Operator response: No System Operator response isnever see (trappable). required.Automation: Not applicable. User response: Do not free temp before free_tmps() routine.HPE20378 Attempt to free unreferenced scalar: System programmer response: No System SV 0xaddr Programmer response is required.Explanation: Perl went to decrement the reference Problem determination: No additional information.count of a scalar to see if it would go to 0, anddiscovered that it had already gone to 0 earlier, and Source: Perlshould have been freed, and in fact, probably wasfreed. This could indicate that SvREFCNT_dec() was Module: Not applicable.called too many times, or that SvREFCNT_inc() was Routing code: Not applicable.called too few times, or that the SV was mortalizedwhen it shouldnt have been, or that memory has been Descriptor code: W- A warning (optional).corrupted. Automation: Not applicable.In the message text:addr HPE20380 Attempt to pack pointer to temporary Memory address. valueExample: HPE20378 Attempt to free unreferenced Explanation: You tried to pass a temporary value (likescalar: SV 0x247458 the result of a function, or a computed expression) to the "p" pack() template. This means the result containsSystem action: Displays the warning and continues a pointer to a location that could become invalidinterpreting the script. anytime, even before the end of the current statement.Operator response: No System Operator response is Example: HPE20380 Attempt to pack pointer torequired. temporary valueUser response: Do not free scalar whose referencecount is zero. Chapter 6. Perl for z/OS messages 113
  • 123. System action: Displays the warning and continues Example: HPE20382 Bad filehandle: iointerpreting the script. System action: Perl immediately stops interpreting theOperator response: No System Operator response is file (before any statements are run) and exits.required. Operator response: No System Operator response isUser response: To avoid this warning, use literals or required.global values as arguments to the "p" pack() template to User response: Check that the filehandle is validavoid this warning. before using it in other functions.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: W- A warning (optional). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20381 Attempt to use reference as lvalue in HPE20383 Bad free() ignored substr Explanation: An internal routine called free() onExplanation: You supplied a reference as the first something that had never been malloc()ed in the firstargument to substr() used as an lvalue. See place.perlfunc/substr for more information. Example: HPE20383 Bad free() ignoredExample: HPE20381 Attempt to use reference aslvalue in substr System action: Displays the warning and continues interpreting the script.System action: Displays the warning and continuesinterpreting the script. Operator response: No System Operator response is required.Operator response: No System Operator response isrequired. User response: Set the environment variable PERL_BADFREE to 0.User response: Before supplying a reference tosubstr(), you need to dereference it first. System programmer response: No System Programmer response is required.System programmer response: No SystemProgrammer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: S- A severe warning (default).Descriptor code: W- A warning (optional). Automation: Not applicable.Automation: Not applicable. HPE20384 Bad hashHPE20382 Bad filehandle: sym Explanation: One of the internal hash routines was passed a null HV pointer. "This is an internal error thatExplanation: A symbol was passed to something cannot be resolved by the user.wanting a filehandle, but the symbol has no filehandleassociated with it. You may not have done an open(); if Example: HPE20384 Bad hashyou did, you may have done it in another package. System action: Perl immediately stops interpreting theIn the message text: file (before any statements are run) and exits.sym Operator response: No System Operator response is Symbol. required.114 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 124. User response: Follow your local procedures for Problem determination: No additional information.reporting problems to IBM. Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: P- An internal error you shouldSource: Perl never see (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: P- An internal error you should HPE20387 Bad symbol for hashnever see (trappable). Explanation: An internal request asked to add a hashAutomation: Not applicable. entry to something that wasnt a symbol table entry. This is an internal error that cannot be resolved by the user.HPE20385 Bad realloc() ignored Example: HPE20387 Bad symbol for hashExplanation: An internal routine called realloc() on System action: Perl immediately stops interpreting thesomething that had never been malloc()ed in the first file (before any statements are run) and exits.place. Operator response: No System Operator response isExample: HPE20385 Bad realloc() ignored required.System action: Displays the warning and continues User response: Add a symbol in a symbol table forinterpreting the script. hash. Follow your local procedures for reporting problems to IBM.Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: Set environment variablePERL_BADFREE to 1. Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: P- An internal error you shouldModule: Not applicable. never see (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: S- A severe warning (default). HPE20388 Bad symbol for filehandleAutomation: Not applicable. Explanation: An internal request asked to add a filehandle entry to something that wasnt a symbol tableHPE20386 Bad symbol for array entry. This is an internal error that cannot be resolvedExplanation: An internal request asked to add an by the user.array entry to something that wasnt a symbol table Example: HPE20388 Bad symbol for filehandleentry. This is an internal error that cannot be resolvedby the user. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Example: HPE20386 Bad symbol for array Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Add a symbol in a symbol table forOperator response: No System Operator response is filehandle. Follow your local procedures for reportingrequired. problems to IBM.User response: Add a symbol in a symbol table for System programmer response: No Systemarray. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Chapter 6. Perl for z/OS messages 115
  • 125. Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: P- An internal error you shouldnever see (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: W- A warning (optional).HPE20389 Bad symbol for filehandle (GV is Automation: Not applicable. unique)Explanation: An internal request asked to add a HPE20391 char better written as $charfilehandle entry to something that wasnt a symbol tableentry. This is an internal error that cannot be resolved Explanation: Outside of patterns, backreferences liveby the user. on as variables. The use of backslashes is grandfathered on the right-hand side of a substitution,Example: HPE20389 Bad symbol for filehandle (GV is but stylistically it is better to use the variable formunique) because other Perl programmers will expect it.System action: Perl immediately stops interpreting the In the message text:file (before any statements are run) and exits. charOperator response: No System Operator response is Charcterrequired. Example: HPE20391 1 better written as $1User response: Add a symbol in a symbol table forfilehandle. Follow your local procedures for reporting System action: Displays the warning and continuesproblems to IBM. interpreting the script.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Variable form works better if there are more than 9 backreferences.Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: P- An internal error you should Source: Perlnever see (trappable). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable.HPE20390 Bareword "package" refers to Descriptor code: W- A warning (optional). nonexistent package Automation: Not applicable.Explanation: You used a qualified bareword of theform Foo::, but the compiler saw no other uses of thatnamespace before that point. HPE20392 Scalar value var better written as $varIn the message text: Explanation: Youve used an array/hash slice (indicated by @) to select a single element of anpackage array/hash. Generally its better to ask for a scalar value Package name (indicated by $). The difference is that $foo[&bar] always behaves like a scalar, both when assigning to itExample: HPE20390 Bareword "Foo::" refers to and when evaluating its argument, while @foo[&bar]nonexistent package behaves like a list when you assign to it, and provides aSystem action: Displays the warning and continues list context to its subscript, which can do weird things ifinterpreting the script. youre expecting only one subscript.Operator response: No System Operator response is In the message text:required. varUser response: You need to predeclare a package. The variable name.116 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 126. Example: HPE20392 Scalar value @foo[&bar] better larger than 2**32-1 (4294967295) and therefore is notwritten as $foo[&bar] portable between systems. See perlport for more iinformation about portability concerns.System action: Displays the warning and continuesinterpreting the script. Example: HPE20394 Binary number > 0b11111111111111111111111111111111 non-portableOperator response: No System Operator response isrequired. System action: Displays the warning and continues interpreting the script.User response: Use $ when you reference to an arrayor hash. Operator response: No System Operator response is required.System programmer response: No SystemProgrammer response is required. User response: Change the binary number to be less than 2**32-1 (4294967295).Problem determination: No additional information. System programmer response: No SystemSource: Perl Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: W- A warning (optional). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: W- A warning (optional).HPE20393 dump() better written as CORE::dump() Automation: Not applicable.Explanation: You used the obsolescent dump() built-infunction, without fully qualifying it as CORE::dump().Maybe its a typo. See Perl functions for more HPE20395 Bit vector size > 32 non-portableinformation. Explanation: Bit vector sizes larger than 32 is notExample: HPE20393 dump() better written as portable between systems.CORE::dump() Example: HPE20395 Bit vector size > 32 non-portableSystem action: Displays the warning and continues System action: Displays the warning and continuesinterpreting the script. interpreting the script.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: dump() function is now largely User response: Change the size of the bit vector toobsolete, partly because its very hard to convert a core be equal to or less than 32.file into an executable, and because the real compilerbackends for generating portable bytecode and System programmer response: No Systemcompilable C code have superseded it. Thats why you Programmer response is required.should now invoke it as CORE::dump(). Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: W- A warning (optional).Routing code: Not applicable. Automation: Not applicable.Descriptor code: W- A warning (optional). HPE20396 Bizarre copy of str1 in str2Automation: Not applicable. Explanation: Perl detected an attempt to copy an internal value that is not copyable. This is an internalHPE20394 Binary number > error that cannot be resolved by the user. 0b11111111111111111111111111111111 non-portable In the message text:Explanation: The binary number you specified is str1 string Chapter 6. Perl for z/OS messages 117
  • 127. str2 HPE20400 msgsnd not implemented string Explanation: Send an ipc message (m!c) is notExample: HPE20396 Bizarre copy of sting in lc implemented.System action: Perl immediately stops interpreting the Example: HPE20400 msgsnd not implementedfile (before any statements are run) and exits. System action: Perl immediately stops interpreting theOperator response: No System Operator response is file (before any statements are run) and exits.required. Operator response: No System Operator response isUser response: Follow local procedures for reporting required.a problem to IBM. User response: Check whether msgsnd has beenSystem programmer response: No System implemented in your machine.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: P- An internal error you should Routing code: Not applicable.never see (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20397 Bizarre copy of str HPE20401 msgrcv not implementedExplanation: Perl detected an attempt to copy aninternal value that is not copyable. This is an internal Explanation: The msgrcv perl routine, which calls theerror that cannot be resolved by the user. system msgrcv function that is used to read a message from a message queue, is not implemented.In the message text: Example: HPE20401 msgrcv not implementedstr string System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Example: HPE20397 Bizarre copy of string Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Do not use the msgrcv routine in theOperator response: No System Operator response is message queue code.required. System programmer response: No SystemUser response: Follow local procedures for reporting Programmer response is required.a problem to IBM. Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: F- A fatal error (trappable).Routing code: Not applicable. Automation: Not applicable.Descriptor code: P- An internal error you shouldnever see (trappable). HPE20402 semop not implementedAutomation: Not applicable. Explanation: The semop perl routine, which calls the System V IPC function semop to perform semaphore operations such as signaling and waiting, is not implemented. Example: HPE20402 semop not implemented118 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 128. System action: Perl immediately stops interpreting the User response: The open(FH, ""command")file (before any statements are run) and exits. construction should be used with the command filled in appropriately.Operator response: No System Operator response isrequired. System programmer response: No System Programmer response is required.User response: Do not use the semop routine. Problem determination: No additional information.System programmer response: No SystemProgrammer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: W- A warning (optional).Routing code: Not applicable. Automation: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20405 Cant open bidirectional pipeAutomation: Not applicable. Explanation: An attempt was made to say open(CMD, ""cmd""), which is not supported. This warning isHPE20403 Cant open a reference related to pipes.Explanation: An attempt was made to open a scalar Example: HPE20405 Cant open bidirectional pipereference for reading or writing, using the 3-arg open()syntax : open FILEH, >, $ref; but the version of Perl is System action: Displays the warning and continuescompiled without perlio, and this form of open is not interpreting the script.supported. This warning is related to IO. Operator response: No System Operator response isExample: HPE20403 Cant open a reference required.System action: Displays the warning and continues User response: You can try several modules in theinterpreting the script. Perl library to open a birectional pipe, such as IPC::Open2. You could also try directing the the pipesOperator response: No System Operator response is output to a file using ">", and then have it read under arequired. different filehandle.User response: Use the 3-arg open syntax to do a file System programmer response: No Systemopen after compiling perl with perlio. Programmer response is required.System programmer response: No System Problem determination: No additional information.Programmer response is required. Source: PerlProblem determination: No additional information. Module: Not applicable.Source: Perl Routing code: Not applicable.Module: Not applicable. Descriptor code: W- A warning (optional).Routing code: Not applicable. Automation: Not applicable.Descriptor code: W- A warning (optional).Automation: Not applicable. HPE20406 Filehandle STDstr reopened as filehandle only for inputHPE20404 Missing command in piped open Explanation: A filehandle was opened for readingExplanation: An attempt was made to use the which has the same ID as STDOUT or STDERR. Theopen(FH, "" command") or open(FH, "command "") STDOUT or STDERR was closed previously. Theconstruction, but the command was missing or blank. warning is related to IO.This warning is related to pipes. In the message text:Example: HPE20404 Missing command in piped open strSystem action: Displays the warning and continues The string could be OUT or ERRinterpreting the script. filehandleOperator response: No System Operator response is The filehandlerequired. Chapter 6. Perl for z/OS messages 119
  • 129. Example: HPE20406 Filehandle STDOUT reopened HPE20408 Cant do inplace edit: filename is not aas FOO only for input regular fileSystem action: Displays the warning and continues Explanation: An attempt was made to use the -iinterpreting the script. switch on a special file in /dev or a FIFO. The file wasOperator response: No System Operator response is ignored. This severe warning is of type inplace. Thisrequired. belongs to the inplace category.User response: Do not open a filehandle having the In the message text:same ID as STDOUT or STDERR. filenameSystem programmer response: No System The file nameProgrammer response is required. Example: HPE20408 Cant do inplace edit: /dev/fd0 isProblem determination: No additional information. not a regular fileSource: Perl System action: Displays the warning and continues interpreting the script.Module: Not applicable. Operator response: No System Operator response isRouting code: Not applicable. required.Descriptor code: W- A warning (optional). User response: Do not attempt to inplace edit aAutomation: Not applicable. special file such as a file in /dev or a FIFO. System programmer response: No SystemHPE20407 Filehandle STDIN reopened as Programmer response is required. filehandle only for output Problem determination: No additional information.Explanation: A filehandle was opened for writing that Source: Perlhas the same filehandle ID as STDIN. This happenedsince STDIN was closed previously. This warning is Module: Not applicable.related to IO. Routing code: Not applicable.In the message text: Descriptor code: S- A severe warning (default).filehandle Automation: Not applicable. The filehandleExample: HPE20407 Filehandle STDIN reopened as HPE20409 Cant do inplace edit: filename wouldFOO only for output not be uniqueSystem action: Displays the warning and continues Explanation: The file system does not support fileinterpreting the script. names longer than 14 characters and Perl was unableOperator response: No System Operator response is to create a unique file name during inplace editing withrequired. the -i switch. The file was ignored. This belongs to the inplace category.User response: Do not open a filehandle that has thesame ID as STDIN. In the message text:System programmer response: No System filenameProgrammer response is required. The filenameProblem determination: No additional information. Example: HPE20409 Cant do inplace edit: filename1234567 would not be uniqueSource: Perl System action: Displays the warning and continuesModule: Not applicable. interpreting the script.Routing code: Not applicable. Operator response: No System Operator response isDescriptor code: W- A warning (optional). required.Automation: Not applicable. User response: Do not use a file name that is not unique while doing a inplace edit. System programmer response: No System Programmer response is required. Problem determination: No additional information.120 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 130. Source: Perl errnodisplay The string representation of the errno.Module: Not applicable. Example: HPE20411 Cant remove file1: EDC5133I:Routing code: Not applicable. No space left on device, skipping fileDescriptor code: S- A severe warning (default). System action: Displays the warning and continuesAutomation: Not applicable. interpreting the script. Operator response: No System Operator response isHPE20410 Cant rename filename1 to filename2: required. errnodisplay, skipping file User response: A backup file should always beExplanation: The rename done by the -i switch failed created first before doing an inplace edit.for some reason, probably because you dont have write System programmer response: No Systempermission to the directory. Programmer response is required.In the message text: Problem determination: No additional information.filename1 Source: Perl The original file name Module: Not applicable.filename2 The new file name Routing code: Not applicable.errnodisplay Descriptor code: S- A severe warning (default). The string representation of the errno Automation: Not applicable.Example: HPE20410 Cant rename /usr1/file1 to/usr1/file1bak: EDC5111I Permission denied, skipping HPE20412 Cant do inplace edit on filename:file errnodisplaySystem action: Displays the warning and continues Explanation: The file was not created due to theinterpreting the script. indicated reason.Operator response: No System Operator response is In the message text:required. filenameUser response: Check whether you have permission The filename.to write to the appropriate directory and then attempt ainplace edit. errnodisplay The string representation of the errno.System programmer response: No SystemProgrammer response is required. Example: HPE20412 Cant do inplace edit on file1: EDC5129I No such file or directory.Problem determination: No additional information. System action: Displays the warning and continuesSource: Perl interpreting the script.Module: Not applicable. Operator response: No System Operator response isRouting code: Not applicable. required.Descriptor code: S- A severe warning (default). User response: One of the reasons for a failure to do in-place edit is there is no such file or directory onAutomation: Not applicable. which the edit is attempted. Verify that the mentioned file exists and then try the edit again.HPE20411 Cant remove filename: errnodisplay, System programmer response: No System skipping file Programmer response is required.Explanation: An inplace edit was requested without Problem determination: No additional information.creating a backup file. Perl was unable to remove theoriginal file to replace it with the modified file. The file Source: Perlwas left unmodified. Module: Not applicable.In the message text: Routing code: Not applicable.filename Descriptor code: S- A severe warning (default). The filename. Automation: Not applicable. Chapter 6. Perl for z/OS messages 121
  • 131. Source: PerlHPE20413 Wide character in print Module: Not applicable.Explanation: Unicode strings were output to a streamwithout a I/O layer. The raw bytes used internally will be Routing code: Not applicable.used (these could either be the native character set orUTF-8 as the case may be). The warning is issued if Descriptor code: D- A deprecation (optional).the string contains a character beyond 0x00FF. Automation: Not applicable.Example: HPE20413 Wide character in printSystem action: Displays the warning and continues HPE20415 (Missing semicolon on previous line?)interpreting the script. Explanation: This message is in conjunction with theOperator response: No System Operator response is message "HPE20697 item found where operatorrequired. expected".User response: Prepend binmode(STDOUT, ":utf8") to Example: HPE20415 (Missing semicolon on previousthe script to avoid this warning. line?)System programmer response: No System System action: Displays the warning and continuesProgrammer response is required. interpreting the script.Problem determination: perl -e print "x{DF}n", Operator response: No System Operator response is"x{0100}x{DF}n"; This generates the warning and required.produces a fairly useless mixture of bytes. This is User response: Check whether the syntax andbecause a character > 0x00FF was used. You can punctuation of the code is correct. However, do notavoid this situation by prepending binmode(STDOUT, automatically put a semicolon on the previous line just":utf8") to the print call. because you saw this message.Source: Perl System programmer response: No SystemModule: Not applicable. Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: W- A warning (optional). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable.HPE20414 Use of construct is deprecated Descriptor code: S- A severe warning (default).Explanation: The construct indicated is no longer Automation: Not applicable.suggested for use, generally because theres a betterway to do it, and also because the old way has badside effects. HPE20416 (Do you need to predeclare str?)In the message text: Explanation: This message in conjunction with the message "HPE20697 item found where operatorconstruct expected" often means a subroutine or module name is The construct name for example "package" with no being referenced that hasnt been declared yet. This arguments. If the package is called without any may be because of ordering problems in your file, or arguments, then this message displays because of a missing "sub", "package", "require", orExample: HPE20414 Use of "package" with no "use" statement.arguments is deprecated In the message text:System action: Perl immediately stops interpreting the strfile (before any statements are run) and exits. The subroutine name or package name or moduleOperator response: No System Operator response is namerequired. Example: HPE20416 (Do you need to predeclareUser response: Use the appropriate construct in place foo?)of the deprecated construct. System action: Displays the warning and continuesSystem programmer response: No System interpreting the script.Programmer response is required. Operator response: No System Operator response isProblem determination: No additional information. required.122 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 132. User response: If something that isnt defined yet is HPE20418 panic: constant overflowed allocatedbeing referenced, you do not have to define the spacesubroutine or package before the current location. Youcan use an empty "sub foo;" or "package FOO;" to enter Explanation: The space required to store a constanta "forward" declaration. value is greater than the space allocated for it. This is an internal error that cannot be resolved by the userSystem programmer response: No SystemProgrammer response is required. Example: HPE20418 panic: constant overflowed allocated spaceProblem determination: No additional information. System action: Perl immediately stops interpreting theSource: Perl file (before any statements are run) and exits.Module: Not applicable. Operator response: No System Operator response isRouting code: Not applicable. required.Descriptor code: S- A severe warning (default). User response: Follow local procedures for reporting problems to IBM.Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20417 (Missing operator before str) Problem determination: No additional information.Explanation: This message is in conjunction with themessage "HPE20697 item found where operator Source: Perlexpected". Often the missing operator is a comma. This Module: Not applicable.belongs to the syntax category. The operator could bemissing before the end of line or before a construct or a Routing code: Not applicable.variable or a part of a statement. Descriptor code: P- An internal error you shouldIn the message text: never see (trappable).str Automation: Not applicable. The string end of line or a part of a statement or a variable or a construct HPE20419 panic: YYMAXLEVELExample: HPE20417 (Missing operator before $var?)" Explanation: This is in the context of the parser. TheSystem action: Displays the warning and continues yyactlevel variable has reached a threshold value whichinterpreting the script. is defined as a macro, YYMAXLEVEL. The yyactlevel variable should have a value less than YYMAXLEVEL.Operator response: No System Operator response is This is an internal error that cannot be resolved by therequired. userUser response: Check whether a comma (or some Example: HPE20419 panic: YYMAXLEVELother operator) is missing before the end of line if theoperator is expected just before the end of line. If not, System action: Perl immediately stops interpreting thelook for a missing operator before a part of a statement file (before any statements are run) and exits.or a construct or a variable. Operator response: No System Operator response isSystem programmer response: No System required.Programmer response is required. User response: Follow your local procedures forProblem determination: No additional information. reporting problems to IBM.Source: Perl System programmer response: No System Programmer response is required.Module: Not applicable. Problem determination: No additional information.Routing code: Not applicable. Source: PerlDescriptor code: S- A severe warning (default). Module: Not applicable.Automation: Not applicable. Routing code: Not applicable. Descriptor code: P- An internal error you should never see (trappable). Automation: Not applicable. Chapter 6. Perl for z/OS messages 123
  • 133. HPE20420 panic: INTERPCASEMOD HPE20422 panic: INTERPCONCATExplanation: The lexer got into a bad state at a case Explanation: The lexer got into a bad state parsing amodifier. This is an internal error that cannot be string with brackets. This is an internal error that cannotresolved by the user. be resolved by the user.Example: HPE20420 panic: INTERPCASEMOD Example: HPE20422 panic: INTERPCONCATSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Follow local procedures for reporting User response: Follow local procedures for reportingproblems to IBM. problems to IBM.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: P- An internal error you should Descriptor code: P- An internal error you shouldnever see (trappable). never see (trappable).Automation: Not applicable. Automation: Not applicable.HPE20421 panic: yylex HPE20423 Unrecognized character xhexcharExplanation: The lexer got into a bad state while Explanation: The Perl parser has no idea what to doprocessing a case modifier. This is an internal error that with the specified character in the Perl script (or eval).cannot be resolved by the user. Perhaps an attempt was made to run a compressed script, a binary program, or a directory as a PerlExample: HPE20421 panic: yylex program.System action: Perl immediately stops interpreting the In the message text:file (before any statements are run) and exits. hexcharOperator response: No System Operator response is The unrecognized 2 byte hex characterrequired. Example: HPE20423 Unrecognized character x03User response: Follow local procedures for reportingproblems to IBM. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.System programmer response: No SystemProgrammer response is required. Operator response: No System Operator response is required.Problem determination: No additional information. User response: Avoid running a script or a programSource: Perl which contains the above mentioned characters.Module: Not applicable. System programmer response: No SystemRouting code: Not applicable. Programmer response is required.Descriptor code: P- An internal error you should Problem determination: No additional information.never see (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable. Routing code: Not applicable. Descriptor code: F- A fatal error (trappable). Automation: Not applicable.124 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 134. HPE20424 (Maybe you didnt strip carriage HPE20426 Unterminated <> operator returns after a network transfer?) Explanation: The lexer found a left angle bracket in aExplanation: This message appears in conjunction place where it was expecting a term, so its looking forwith "HPE20285 Illegal character char(carriage return)". the corresponding right angle bracket, and not finding it.Typically, literal carriage returns within program text are Chances are some needed parentheses were left outtreated as white space. A preprocessor symbol was earlier in the line, and the intended code was really adefined that treats carriage returns within program text "less than".more strictly. Maybe a network transfer was completed Example: HPE20426 Unterminated <> operatorbut carriage returns were not stripped from the text. System action: Perl immediately stops interpreting theExample: HPE20424 (Maybe you didnt strip carriage file (before any statements are run) and exits.returns after a network transfer?) Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Ensure that all parentheses areOperator response: No System Operator response is closed before a left angled bracket is used alone torequired. mean a less-than sign.User response: Do not use carriage returns after a System programmer response: No Systemnetwork transfer. Programmer response is required.System programmer response: No System Problem determination: Trappable errors may beProgrammer response is required. trapped using the eval operatorProblem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: F- A fatal error (trappable).Descriptor code: F- A fatal error (trappable). Automation: Not applicable.Automation: Not applicable. HPE20427 panic: scan_numHPE20425 panic: input overflow Explanation: scan_num() got called on something thatExplanation: An internal error occurred that cannot be wasnt a number. This is an internal error that cannot beresolved by the user. resolved by the user.Example: HPE20425 panic: input overflow Example: HPE20427 panic: scan_numSystem action: Perl immediately stops interpreting the System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Follow your local procedures for User response: Follow local procedures for reportingreporting problems to IBM. problems to IBM.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: P- An internal error you should Descriptor code: P- An internal error you shouldnever see (trappable). never see (trappable).Automation: Not applicable. Automation: Not applicable. Chapter 6. Perl for z/OS messages 125
  • 135. User response: Do not use the utf32-le encoding if itHPE20428 msg program_name has too many is not supported on the current version of perl. errors. System programmer response: No SystemExplanation: The parser has given up trying to parse Programmer response is required.the program after ten errors. Further error messageswould likely be uninformative. This error is fatal. Problem determination: No additional information.In the message text: Source: Perlmsg Module: Not applicable. The error message which may contain: (Missing semicolon on previous line?) or (Missing operator Routing code: Not applicable. before %.*s?) Descriptor code: F- A fatal error (trappable).program_name Automation: Not applicable. The program nameExample: HPE20428 Syntax error in file ./a.t at line HPE20430 Unsupported script encoding258, next 2 tokens "my (" Syntax error in file ./a.t at line UTF16-LE272, next 2 tokens "my $hnrcIsNew " Syntax error in file./a.t at line 580, next 2 tokens "my $email" Syntax error Explanation: The program file begins with a Bytein file ./a.t at line 618, next 2 tokens "local $debug " Order Mark which marks it in a Unicode encoding thatSyntax error in file ./a.t at line 651, next 2 tokens "my(" Perl cannot read.Syntax error in file ./a.t at line 724, next token "}" Syntax Example: HPE20430 Unsupported script encodingerror in file ./a.t at line 785, next token "}" Syntax error UTF16-LEin file ./a.t at line 792, next 2 tokens "}" Syntax error infile ./a.t at line 801, next 2 tokens "}" Syntax error in file System action: Perl immediately stops interpreting the./a.t at line 808, next 2 tokens "}" a.t has too many file (before any statements are run) and exits.errors.n Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Do not use the utf16-le encoding if itOperator response: No System Operator response is is not supported on the current version of Perl.required. System programmer response: No SystemUser response: Minimize the number of errors in the Programmer response is required.Perl program Problem determination: No additional information.System programmer response: No System Source: PerlProgrammer response is required. Module: Not applicable.Problem determination: No additional information. Routing code: Not applicable.Source: Perl Descriptor code: F- A fatal error (trappable).Module: Not applicable. Automation: Not applicable.Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). HPE20431 Unsupported script encodingAutomation: Not applicable. UTF16-BE Explanation: The program file begins with a ByteHPE20429 Unsupported script encoding Order Mark which marks it in a Unicode encoding that UTF32-LE Perl cannot read.Explanation: The program file begins with a Byte Example: HPE20431 Unsupported script encodingOrder Mark which marks it in a Unicode encoding that UTF16-BEPerl cannot read. System action: Perl immediately stops interpreting theExample: HPE20429 Unsupported script encoding file (before any statements are run) and exits.UTF32-LE Operator response: No System Operator response isSystem action: Perl immediately stops interpreting the required.file (before any statements are run) and exits. User response: Do not use the utf16-be encoding if itOperator response: No System Operator response is is not supported on the current version of Perl.required.126 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 136. System programmer response: No System User response: Always place the = sign last to avoidProgrammer response is required. the warning.Problem determination: No additional information. System programmer response: No System Programmer response is required.Source: Perl Problem determination: No additional information.Module: Not applicable. Source: PerlRouting code: Not applicable. Module: Not applicable.Descriptor code: F- A fatal error (trappable). Routing code: Not applicable.Automation: Not applicable. Descriptor code: W- A warning (optional).HPE20432 Unsupported script encoding Automation: Not applicable. UTF32-BEExplanation: The program file begins with a Byte HPE20434 Multidimensional syntax construct notOrder Mark which marks it in a Unicode encoding that supportedPerl cannot read. Explanation: Multidimensional arrays arent writtenExample: HPE20432 Unsupported script encoding like $foo[1,2,3].UTF32-BE In the message text:System action: Perl immediately stops interpreting the constructfile (before any statements are run) and exits. The multidimensional array representationOperator response: No System Operator response is Example: HPE20434 Multidimensional syntaxrequired. $foo[1,2,3] not supportedUser response: Do not use the utf32-be encoding if it System action: Displays the warning and continuesis not supported on the current version of Perl. interpreting the script.System programmer response: No System Operator response: No System Operator response isProgrammer response is required. required.Problem determination: No additional information. User response: Represent multi-dimensional arraysSource: Perl as $foo[1][2][3], as in C.Module: Not applicable. System programmer response: No System Programmer response is required.Routing code: Not applicable. Problem determination: No additional information.Descriptor code: F- A fatal error (trappable). Source: PerlAutomation: Not applicable. Module: Not applicable.HPE20433 Reversed symbol1symbol2 operator Routing code: Not applicable.Explanation: The assignment operator was written Descriptor code: W- A warning (optional).backwards. The = must always come last, to avoid Automation: Not applicable.ambiguity with subsequent unary operators.In the message text: HPE20435 Cant use num to mean symbol num insymbol1 expression The + or - symbol Explanation: In an ordinary expression, backslash is asymbol2 unary operator that creates a reference to its argument. The symbol = A backslash can be used to indicate a backreference to a matched substring only as part of a regularExample: HPE20433 Reversed += operator expression pattern. Trying to do this in ordinary PerlSystem action: Displays the warning and continues code produces a value that prints out looking likeinterpreting the script. SCALAR(0xdecaf).Operator response: No System Operator response is In the message text:required. num The number indicating the matched variable Chapter 6. Perl for z/OS messages 127
  • 137. symbol Automation: Not applicable. The $ symbolExample: HPE20435 Cant use 1 to mean $1 in HPE20437 Precedence problem: open filehandleexpression should be open(filehandle)System action: Displays the warning and continues Explanation: The old irregular construct open FH ""interpreting the script. die; is now misinterpreted as open(FH "" die); because of the strict regularization of Perl 5s grammar into unaryOperator response: No System Operator response is and list operators. (The old open was a little of both.)required. Parentheses should be placed around the filehandle, orUser response: Use the $ form instead of the the new "or" operator should be used instead of """".backslash form. This severe warning belongs to the precedence category.System programmer response: No SystemProgrammer response is required. In the message text:Problem determination: No additional information. filehandle The filehandleSource: Perl Example: HPE20437 Precedence problem: open FOOModule: Not applicable. should be open(FOO)Routing code: Not applicable. System action: Displays the warning and continuesDescriptor code: W- A warning (optional). interpreting the script.Automation: Not applicable. Operator response: No System Operator response is required.HPE20436 Operator or semicolon missing before User response: Use parentheses around the symbol1var2 filehandle when calling an open of the form : open filehandle "" die;Explanation: A variable or subroutine call was usedwhere the parser was expecting an operator. The parser System programmer response: No Systemassumed that an operator was really intended to be Programmer response is required.used. However, that assumption could be incorrect. This Problem determination: No additional information.severe warning belongs to the ambiguous category. Source: PerlIn the message text: Module: Not applicable.symbol1 The symbol which could be a * Routing code: Not applicable.var2 Descriptor code: S- A severe warning (default). The pointer variable Automation: Not applicable.Example: HPE20436 Operator or semicolon missingbefore *foo at - line 8. HPE20438 Possible attempt to separate wordsSystem action: Displays the warning and continues with commasinterpreting the script. Explanation: qw() lists contain items separated byOperator response: No System Operator response is whitespace; therefore commas arent needed torequired. separate the items. (You may have used different delimiters than the parentheses shown here; braces areUser response: Do not use a variable or subroutine also frequently used.) This warning belongs to the qwcall where an operator is expected. category.System programmer response: No System Example: HPE20438 Possible attempt to separateProgrammer response is required. words with commasProblem determination: No additional information. System action: Displays the warning and continuesSource: Perl interpreting the script.Module: Not applicable. Operator response: No System Operator response is required.Routing code: Not applicable. User response: If you have something like theDescriptor code: S- A severe warning (default). following: qw! a, b, c !; Then that should should be written as : qw! a b c !;128 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 138. System programmer response: No System System action: Displays the warning and continuesProgrammer response is required. interpreting the script.Problem determination: No additional information. Operator response: No System Operator response is required.Source: Perl User response: Use legal characters for theModule: Not applicable. subroutine prototype.Routing code: Not applicable. System programmer response: No SystemDescriptor code: W- A warning (optional). Programmer response is required.Automation: Not applicable. Problem determination: No additional information. Source: PerlHPE20439 Possible attempt to put comments in Module: Not applicable. qw() list Routing code: Not applicable.Explanation: qw() lists contain items separated bywhite space; as with literal strings, comment characters Descriptor code: W- A warning (optional).are not ignored, but are instead treated as literal data. Automation: Not applicable.(delimiters different from the ones shown here mighthave been used; braces are also frequently used.) HPE20441 Possible unintended interpolation ofExample: HPE20439 Possible attempt to put var in stringcomments in qw() list Explanation: Something like `@foo was indicated in aSystem action: Displays the warning and continues double-quoted string but there was no array @foo ininterpreting the script. scope at the time. To indicate a literal @foo, it shouldOperator response: No System Operator response is be written as @foo; otherwise you need to find outrequired. about the array in question. This warning belongs to the ambiguous category.User response: For comments, the qw() list should bebuilt with quotes and commas: @list = ( a, # a In the message text:comment b, # another comment ); varSystem programmer response: No System The pointer variableProgrammer response is required. Example: HPE20441 Possible unintendedProblem determination: No additional information. interpolation of @arr in stringSource: Perl System action: Displays the warning and continues interpreting the script.Module: Not applicable. Operator response: No System Operator response isRouting code: Not applicable. required.Descriptor code: W- A warning (optional). User response: An array should be indicated in aAutomation: Not applicable. double=quoted string as @foo System programmer response: No SystemHPE20440 Illegal character in prototype for sub : Programmer response is required. var Problem determination: No additional information.Explanation: An illegal character was found in a Source: Perlprototype declaration. Legal characters in prototypes are$, @, %, *, ;, [, ], &, and . This warning belongs to the Module: Not applicable.syntax category. Routing code: Not applicable.In the message text: Descriptor code: W- A warning (optional).sub Automation: Not applicable. The subroutine namevar The malloced stringExample: HPE20440 Illegal character in prototype formain::badproto : @bar Chapter 6. Perl for z/OS messages 129
  • 139. HPE20442 elseif should be elsif HPE20444 Misplaced _ in numberExplanation: The code containing elseif will be Explanation: An underscore (underbar) character in ainterpreted as an attempt to call a method named elseif numeric constant did not separate two digits.for the class returned by the following block. This Example: HPE20444 Misplaced _ in numbersevere warning belongs to the syntax category. System action: Displays the warning and continuesExample: HPE20442 elseif should be elsif interpreting the script.System action: Displays the warning and continues Operator response: No System Operator response isinterpreting the script. required.Operator response: No System Operator response is User response: The underscore (underbar) characterrequired. should be used appropriately.User response: Use elsif instead of elseif. System programmer response: No SystemSystem programmer response: No System Programmer response is required.Programmer response is required. Problem determination: No additional information.Problem determination: No additional information. Source: PerlSource: Perl Module: Not applicable.Module: Not applicable. Routing code: Not applicable.Routing code: Not applicable. Descriptor code: W- A warning (optional).Descriptor code: S- A severe warning (default). Automation: Not applicable.Automation: Not applicable. HPE20445 Integer overflow in numformat numberHPE20443 op(...) interpreted as function Explanation: The hexadecimal, octal or binary numberExplanation: If a list operator is followed by a left which has been specified either as a literal or as anparenthesis, the list operator is treated as a function argument to hex() or oct() is too big for the architecture,with all operators and arguments within the pair of and has been converted to a floating point number. Onparentheses. This warning belongs to the syntax a 32-bit architecture, the largest hexadecimal, octal orcategory. binary number representable without overflow is 0xFFFFFFFF, 037777777777, orIn the message text: 0b11111111111111111111111111111111 respectively. Noteop The list operator that Perl transparently promotes all numbers to a floating point representation internally--subject to loss ofExample: HPE20443 sort (...) interpreted as function precision errors in subsequent operations. This warningSystem action: Displays the warning and continues belongs to the overflow category.interpreting the script. In the message text:Operator response: No System Operator response is numformatrequired. The numeric format. It can have values : decimal,User response: Do not use parentheses when calling hexadecimal, octal or binary.a list operator to prevent it from being treated as a Example: HPE20445 Integer overflow in binaryfunction. numberSystem programmer response: No System System action: Displays the warning and continuesProgrammer response is required. interpreting the script.Problem determination: No additional information. Operator response: No System Operator response isSource: Perl required.Module: Not applicable. User response: Make sure that the numbers used are within range.Routing code: Not applicable. System programmer response: No SystemDescriptor code: W- A warning (optional). Programmer response is required.Automation: Not applicable. Problem determination: No additional information. Source: Perl130 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 140. Module: Not applicable. System action: Displays the warning and continues interpreting the script.Routing code: Not applicable. Operator response: No System Operator response isDescriptor code: W- A warning (optional). required.Automation: Not applicable. User response: Use decimal numbers within range. System programmer response: No SystemHPE20446 numformat number > num non-portable Programmer response is required.Explanation: Because the specified number is larger Problem determination: No additional information.than the permissible value, it is not portable betweensystems. The largest permissible value is 2**32 - 1. This Source: Perlwarning belongs to the portable category. Module: Not applicable.See perlport for more on portability concerns. Routing code: Not applicable.In the message text: Descriptor code: W- A warning (optional).numformat Automation: Not applicable. The numeric format which could be hexadecimal, octal or binary HPE20448 panic: paren_elems_to_push < 0num The number Explanation: An internal error occurred that cannot be resolved by the user.Example: HPE20446 Hexadecimal number > 0xffffffffnon-portable Example: HPE20448 panic: paren_elems_to_push < 0System action: Displays the warning and continues System action: Perl immediately stops interpreting theinterpreting the script. file (before any statements are run) and exits.Operator response: No System Operator response is Operator response: No System Operator response isrequired. required.User response: Use a number less than or equal to User response: Follow your local procedure for2**32 -1 to make it portable between systems. reporting problems to IBM.System programmer response: No System System programmer response: No SystemProgrammer response is required. Programmer response is required.Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: W- A warning (optional). Descriptor code: P- An internal error you should never see (trappable).Automation: Not applicable. Automation: Not applicable.HPE20447 Integer overflow in decimal number HPE20449 panic: end_shiftExplanation: Because the decimal number, which hasbeen specified either as a literal or as an argument to Explanation: An internal error occurred that cannot behex() or oct(), is too big for the architecture, it has been resolved by the user.converted to a floating point number. On a 32-bitarchitecture, the largest binary number representable Example: HPE20449 panic: end_shiftwithout overflow is System action: Perl immediately stops interpreting the0b11111111111111111111111111111111. Note that Perl file (before any statements are run) and exits.transparently promotes all numbers to a floating pointrepresentation internally--subject to loss of precision Operator response: No System Operator response iserrors in subsequent operations. This warning belongs required.to the overflow category. User response: Follow your local procedures forExample: HPE20447 Integer overflow in decimal reporting problems to IBM.number System programmer response: No System Chapter 6. Perl for z/OS messages 131
  • 141. Programmer response is required. Operator response: No System Operator response is required.Problem determination: No additional information. User response: Either an early prototype declarationSource: Perl for the subroutine in question needs to be added, or theModule: Not applicable. subroutine definition needs to be moved ahead of the call to get proper prototype checking. Alternatively, ifRouting code: Not applicable. you are sure that the function is being called correctly,Descriptor code: P- An internal error you should an ampersand before the name would help avoid thenever see (trappable). warning.Automation: Not applicable. System programmer response: No System Programmer response is required.HPE20450 panic: unknown regstclass num Problem determination: No additional information.Explanation: The starting class for the regular Source: Perlexpression was not known. Module: Not applicable.In the message text: Routing code: Not applicable.num Descriptor code: W- A warning (optional). numbers Automation: Not applicable.Example: HPE20450 panic: unknown regstclass 10System action: Perl immediately stops interpreting the HPE20453 Cant call method "method" strfile (before any statements are run) and exits. Explanation: A method was not called because aOperator response: No System Operator response is package or object was not referenced, or a value wasrequired. not specified.User response: Use the correct class in the regular In the message text:expression. methodSystem programmer response: No System The method name.Programmer response is required. strProblem determination: No additional information. The reason string. It could be either "without aSource: Perl package or object reference" or "on an undefined value"Module: Not applicable. Example: HPE20453 Cant call method "meth" on anRouting code: Not applicable. undefined value at - line 1Descriptor code: P- An internal error you should System action: Perl immediately stops interpreting thenever see (trappable). file (before any statements are run) and exits.Automation: Not applicable. Operator response: No System Operator response is required.HPE20452 function() called too early to check User response: Make sure that either an object or prototype package is referenced, or a value is defined, before aExplanation: A function was called that has a method is called.prototype before the parser saw a definition or System programmer response: No Systemdeclaration for it, and Perl could not check that the call Programmer response is required.conforms to the prototype. For more information, seeperlsub. Problem determination: A Fatal error may be trapped using the eval operator.In the message text: Source: Perlfunction The function name. Module: Not applicable.Example: HPE20452 foo() called too early to check Routing code: Not applicable.prototype Descriptor code: F- A fatal error (trappable).System action: Displays the warning and continues Automation: Not applicable.interpreting the script.132 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 142. Source: PerlHPE20454 Cant check filesystem of script "scriptname" for nosuid/noexec Module: Not applicable.Explanation: For some reason, the file system of the Routing code: Not applicable.script cannot be checked for nosuid or noexec. This isan internal error which should not be seen. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.scriptname The script name. HPE20456 Setuid script "scriptname" on noexec filesystemExample: HPE20454 Cant check filesystem of scripta.pl for nosuid/noexec Explanation: A script, which has the setuid bit set, was attempted on a file system where running a scriptSystem action: Perl immediately stops interpreting the is not allowed because the noexec permission was set.file (before any statements are run) and exits. In the message text:Operator response: No System Operator response isrequired. scriptname The script name.User response: Follow your local procedures forreporting problems to IBM. Example: HPE20456 Setuid script b.pl on noexec filesystemSystem programmer response: No SystemProgrammer response is required. System action: Perl immediately stops interpreting the file (before any statements are run) and exits.Problem determination: No additional information. Operator response: No System Operator response isSource: Perl required.Module: Not applicable. User response: Verify if the script has the setuid bit set. Also, verify whether the file system has the noexecRouting code: Not applicable. permission set before you attempt to run the script.Descriptor code: P- An internal error you should System programmer response: No Systemnever see (trappable). Programmer response is required.Automation: Not applicable. Problem determination: No additional information. Source: PerlHPE20455 Setuid script "scriptname" on nosuid filesystem Module: Not applicable.Explanation: An attempt was made to run a setuid Routing code: Not applicable.script on a file system that does not support the setuidbit. Descriptor code: F- A fatal error (trappable).In the message text: Automation: Not applicable.scriptname The script name. HPE20457 Setuid script changedExample: HPE20455 Setuid script a.pl on nosuid Explanation: The permissions of the script have beenfilesystem changed so as to set the setuid bit. However, if the shell does not support setuid scripts, the script will not run.System action: Perl immediately stops interpreting thefile (before any statements are run) and exits. Example: HPE20457 Setuid script changedOperator response: No System Operator response is System action: Perl immediately stops interpreting therequired. file (before any statements are run) and exits.User response: Check whether a script has the setuid Operator response: No System Operator response isbit set before attempting it on a nosuid filesystem. It required.should show permissions like : "-rwsr--r--". The s in the User response: While changing a script to enable thepermissions indicates that the setuid bit is set. setuid bit, ensure that the shell on which you intend toSystem programmer response: No System run the script supports setuid scripts.Programmer response is required. System programmer response: No SystemProblem determination: No additional information. Programmer response is required. Chapter 6. Perl for z/OS messages 133
  • 143. Problem determination: No additional information. Problem determination: No additional information.Source: Perl Source: PerlModule: Not applicable. Module: Not applicable.Routing code: Not applicable. Routing code: Not applicable.Descriptor code: F- A fatal error (trappable). Descriptor code: F- A fatal error (trappable).Automation: Not applicable. Automation: Not applicable.HPE20458 Setuid script on nosuid or noexec HPE20460 Setuid script name may not begin with filesystem dashExplanation: An attempt was made to run a setuid Explanation: The name of the setuid script began withscript on a file system that either is a noexec file system a dash, which is not allowed.or does not support the setuid bit. Example: HPE20460 Setuid script name may notExample: HPE20458 Setuid script on nosuid or begin with dashnoexec filesystem System action: Perl immediately stops interpreting theSystem action: Perl immediately stops interpreting the file (before any statements are run) and exits.file (before any statements are run) and exits. Operator response: No System Operator response isOperator response: No System Operator response is required.required. User response: cond_signal should be called on aUser response: Check whether a script has the setuid variable that is shared.bit set before attempting it on a nosuid file system. It System programmer response: No Systemshould show permissions like : "-rwsr--r--". The s in the Programmer response is required.permissions indicates that the setuid bit is set. Alsoverify whether the filesystem allows setting the setuid bit Problem determination: No additional information.or if it is a noexec filesystem (may be verified by themount options). Source: PerlSystem programmer response: No System Module: Not applicable.Programmer response is required. Routing code: Not applicable.Problem determination: No additional information. Descriptor code: F- A fatal error (trappable).Source: Perl Automation: Not applicable.Module: Not applicable.Routing code: Not applicable. HPE20461 No setuid script nameDescriptor code: F- A fatal error (trappable). Explanation: There is no name for the setuid scriptAutomation: Not applicable. Example: HPE20461 No setuid script name System action: Perl immediately stops interpreting theHPE20459 Setuid script not plain file file (before any statements are run) and exits.Explanation: If a script is read from a socket, a pipe Operator response: No System Operator response isor another device, the setuid emulator wont run that required.script. User response: Assign a name to the setuid script.Example: HPE20459 Setuid script not plain file System programmer response: No SystemSystem action: Perl immediately stops interpreting the Programmer response is required.file (before any statements are run) and exits. Problem determination: No additional information.Operator response: No System Operator response is Source: Perlrequired. Module: Not applicable.User response: Do not run a perl script from a socket,a pipe or any other device. Routing code: Not applicable.System programmer response: No System Descriptor code: F- A fatal error (trappable).Programmer response is required. Automation: Not applicable.134 z/OS V1.1.1 IBM Ported Tools for z/OS: Perl for z/OS Feature Users Guide and Reference
  • 144. Automation: Not applicable.HPE20462 Cant do setegid!Explanation: The setegid() call failed within the setuid HPE20464 Cant exec "filename": errnodisplayemulator of suidperl. Explanation: A system(), exec(), or piped open callExample: HPE20462 Cant do setegid! could not execute the named program for the indicatedSystem action: Perl immediately stops interpreting the reason. This warning belongs to the exec category.file (before any statements are run) and exits. In the message text:Operator response: No System Operator response is filenamerequired. The filename.User response: Check whether the calling process errnodisplayhas appropriate privileges before calling setegid. Also, The string form of the errnothe setegid should be attempted only if the gid is equalto the real group id or the saved set-group-id. Example: HPE20464 Cant exec /u/isldev/file1: EDC5129I No such file or directory. at b.t line 2.System programmer response: No SystemProgrammer response is required. System action: Displays the warning and continues interpreting the script.Problem determination: Check whether the callingprocess has appropriate privileges to call setegid or if Operator response: No System Operator response isthe gid is not equal to the real -group id or saved required.set-group-id. User response: Verify that the file has correctSource: Perl permissions, it is present in $ENV{PATH}, the executable has been compiled for the same architecture that it isModule: Not applicable. being attempted to run on, and that the #! line in theRouting code: Not applicable. script points to the Perl interpreter which has been built.Descriptor code: P- An internal error you should System programmer response: No Systemnever see (trappable). Programmer response is required.Automation: Not applicable. Problem determination: Typical reasons for the failure include: the permissions were wrong on the file, the file wasnt found in $ENV{PATH}, the executable inHPE20463 Cant do seteuid! question was compiled for another architecture, or theExplanation: The function to set the effective user ID #! line in a script points to an interpreter that cant beof the calling process failed. The value of the UID run for similar reasons. (Or maybe your system doesntargument may not be valid and is not supported by the support #! at all.)implementation. It is also possible that the process does Source: Perlnot have appropriate privileges and UID does not matchthe real user ID or the saved set-user-ID. Module: Not applicable.Example: HPE20463 Cant do seteuid! Routing code: Not applicable.System action: Perl immediately stops interpreting the Descriptor code: W- A warning (optional).file (before any statements are run) and exits. Automation: Not applicable.Operator response: No System Operator response isrequired. HPE20470 Cant locate package variable forUser response: Use a valid UID argument to the @package::ISAseteuid call and also ensure that the process that is Explanation: The @ISA array contained the name ofcalling seteuid has appropriate privileges. another package that does not seem to exist.System programmer response: No System In the message text:Programmer response is required. variableProblem determination: No additional information. The pointer variable corresponding to the packageSource: Perl in questionModule: Not applicable. package The package nameRouting code: Not applicable. Example: HPE20470 Cant locate package Foo forDescriptor code: P- An internal error you should @main::ISAnever see (trappable). Chapter 6. Perl for z/OS messages 135