Author: wayland
Date: 2009-08-15 13:19:43 +0200 (Sat, 15 Aug 2009)
New Revision: 27999
Modified:
docs/Perl6/Spec/S02-bits.pod
docs/Perl6/Spec/S16-io.pod
docs/Perl6/Spec/S32-setting-library/IO.pod
Log:
[S02,S16,S32/IO] Added special quoting that creates IO::FSNode objects.
This could still be controversial, but I've gone with the
"Forgiveness/Permission" thing. If no-one fights it, I'll revise the
Draft IO specs (S16 and S32/IO) to refer to IO::FSNode objects in
appropriate places instead of strings.
Modified: docs/Perl6/Spec/S02-bits.pod
===================================================================
--- docs/Perl6/Spec/S02-bits.pod 2009-08-15 05:51:50 UTC (rev 27998)
+++ docs/Perl6/Spec/S02-bits.pod 2009-08-15 11:19:43 UTC (rev 27999)
@@ -2834,6 +2834,7 @@
:subst Parse as substitution
:trans Parse as transliteration
:code Quasiquoting
+ :io Return an IO::FSNode
You may omit the first colon by joining an initial C<Q>, C<q>, or C<qq> with
a single short form adverb, which produces forms like:
Modified: docs/Perl6/Spec/S16-io.pod
===================================================================
--- docs/Perl6/Spec/S16-io.pod 2009-08-15 05:51:50 UTC (rev 27998)
+++ docs/Perl6/Spec/S16-io.pod 2009-08-15 11:19:43 UTC (rev 27999)
@@ -78,6 +78,21 @@
S32-setting-library/IO.pod. The main functions used are listed in S29 with
references to
S32-setting-library/IO.pod.
+=head2 Special Quoting Syntax
+
+The use of filenames requires a special quoting syntax. It works as follows:
+
+ q:io{/path/to/file}
+
+The quote characters can be any of the usual ones, although / is probably a
bad choice
+for filenames.
+
+The code shown above returns an IO::FSNode object (or a descendant thereof).
+
+Naturally you can also ask for interpolation in filenames:
+
+ qq:io{$directory/$file}
+
=head1 Name Services
=head2 User role
Modified: docs/Perl6/Spec/S32-setting-library/IO.pod
===================================================================
--- docs/Perl6/Spec/S32-setting-library/IO.pod 2009-08-15 05:51:50 UTC (rev
27998)
+++ docs/Perl6/Spec/S32-setting-library/IO.pod 2009-08-15 11:19:43 UTC (rev
27999)
@@ -587,19 +587,18 @@
:$Readable
);
-The C<FSNode>, C<Filename> and C<fd> options are mutually exclusive. If
"C<use portable>" is in
-effect, the C<Filename> option throws an error; use an C<FSNode> instead.
+The C<FSNode> and C<fd> options are mutually exclusive.
C<NoOpen> is passed to C<IO::Streamable.new()>
Examples:
- # Read -- throws errors with 'use portable'
- $fobj = new IO::File(Filename => $filename);
+ # Read, no interpolation
+ $fobj = new IO::File(FSNode => q:io{/path/to/file});
- # Write -- works with 'use portable'
+ # Write, interpolation
$fobj = new IO::File(
- FSNode => IO::FSNode.new(type => 'Unix', Filename => $filename),
+ FSNode => q:io:qq{$filename},
Writeable => 1
);