(which do nothing, and return zero and -1, respectively) or for
certain methods you may assume a default behaviour by using a NULL
-method. The default behaviour is either to use the corresponding
-PerlIOBase method, or silently return success (return zero), or to
-fail (set errno and return -1 or NULL). The following table
-summarizes the behaviour:
+method. The Open method looks for help in the 'parent' layer.
+The following table summarizes the behaviour:
method behaviour with NULL
Clearerr PerlIOBase_clearerr
Close PerlIOBase_close
- Dup FAILURE
+ Dup PerlIOBase_dup
Eof PerlIOBase_eof
Error PerlIOBase_error
Fileno PerlIOBase_fileno
Fill FAILURE
Flush SUCCESS
- Getarg FAILURE
+ Getarg SUCCESS
Get_base FAILURE
Get_bufsiz FAILURE
Get_cnt FAILURE
Get_ptr FAILURE
- Open FAILURE
- Popped SUCCESS
- Pushed SUCCESS
+ Open INHERITED
+ Popped SUCCESS
+ Pushed SUCCESS
Read PerlIOBase_read
Seek FAILURE
Set_cnt FAILURE
Unread PerlIOBase_unread
Write FAILURE
+ FAILURE Set errno (to EINVAL in UNIXish, to LIB$_INVARG in VMS) and
+ return -1 (for numeric return values) or NULL (for pointers)
+ INHERITED Inherited from the layer below
+ SUCCESS Return 0 (for numeric return values) or a pointer
+
=head2 Core Layers
The file C<perlio.c> provides the following layers: