diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perliol.pod')
-rw-r--r-- | Master/tlpkg/tlperl/lib/pods/perliol.pod | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perliol.pod b/Master/tlpkg/tlperl/lib/pods/perliol.pod index e81484772a7..0f71b93078f 100644 --- a/Master/tlpkg/tlperl/lib/pods/perliol.pod +++ b/Master/tlpkg/tlperl/lib/pods/perliol.pod @@ -526,11 +526,12 @@ passed to C<open>, otherwise it will be 1 if for example C<PerlIO_open> was called. In simple cases SvPV_nolen(*args) is the pathname to open. -Having said all that translation-only layers do not need to provide -C<Open()> at all, but rather leave the opening to a lower level layer -and wait to be "pushed". If a layer does provide C<Open()> it should -normally call the C<Open()> method of next layer down (if any) and -then push itself on top if that succeeds. +If a layer provides C<Open()> it should normally call the C<Open()> +method of next layer down (if any) and then push itself on top if that +succeeds. C<PerlIOBase_open> is provided to do exactly that, so in +most cases you don't have to write your own C<Open()> method. If this +method is not defined, other layers may have difficulty pushing +themselves on top of it during open. If C<PerlIO_push> was performed and open has failed, it must C<PerlIO_pop> itself, since if it's not, the layer won't be removed |