summaryrefslogtreecommitdiff
path: root/lib/attributes.pm
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-01-26 21:45:41 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-01-26 21:45:41 +0000
commit1d2a47f0b25b34eadcd594c3d9851ce432bbb11b (patch)
tree4672762c58abfd7b87c1c311161e80225991136b /lib/attributes.pm
parent7d8a9c000ae5187f4f04fbd25d7a2d7393975a22 (diff)
downloadperl-1d2a47f0b25b34eadcd594c3d9851ce432bbb11b.tar.gz
revised attribute syntax: C<my $foo :a :b :c>, C<my $foo : a b c>
and C<my $foo : a : b : c> are all valid (from Spider Boardman) p4raw-id: //depot/perl@4907
Diffstat (limited to 'lib/attributes.pm')
-rw-r--r--lib/attributes.pm15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/attributes.pm b/lib/attributes.pm
index 09f355139f..bbbb8b78ee 100644
--- a/lib/attributes.pm
+++ b/lib/attributes.pm
@@ -1,6 +1,6 @@
package attributes;
-$VERSION = 0.02;
+$VERSION = 0.03;
@EXPORT_OK = qw(get reftype);
@EXPORT = ();
@@ -54,7 +54,7 @@ sub import {
my $s = ((@pkgattrs == 1) ? '' : 's');
carp "$svtype package attribute$s " .
"may clash with future reserved word$s: " .
- join(' , ' , @pkgattrs);
+ join(' : ' , @pkgattrs);
}
}
}
@@ -65,7 +65,7 @@ sub import {
croak "Invalid $svtype attribute" .
(( @badattrs == 1 ) ? '' : 's') .
": " .
- join(' , ', @badattrs);
+ join(' : ', @badattrs);
}
}
@@ -267,7 +267,8 @@ will use that package name.
=head2 Syntax of Attribute Lists
An attribute list is a sequence of attribute specifications, separated by
-whitespace, commas, or both. Each attribute specification is a simple
+whitespace or a colon (with optional whitespace).
+Each attribute specification is a simple
name, optionally followed by a parenthesised parameter list.
If such a parameter list is present, it is scanned past as for the rules
for the C<q()> operator. (See L<perlop/"Quote and Quote-like Operators">.)
@@ -275,8 +276,8 @@ The parameter list is passed as it was found, however, and not as per C<q()>.
Some examples of syntactically valid attribute lists:
- switch(10,foo(7,3)) , , expensive
- Ugly('\(") , Bad
+ switch(10,foo(7,3)) : expensive
+ Ugly('\(") :Bad
_5x5
locked method
@@ -286,7 +287,7 @@ Some examples of syntactically invalid attribute lists (with annotation):
Ugly('(') # ()-string not balanced
5x5 # "5x5" not a valid identifier
Y2::north # "Y2::north" not a simple identifier
- foo + bar # "+" neither a comma nor whitespace
+ foo + bar # "+" neither a colon nor whitespace
=head1 EXPORTS