NAME
Perl6::Interpolators - Use Perl 6 function-interpolation syntax
SYNOPSIS
use
Perl6::Interpolators;
sub
Foo { 1 }
sub
Bar { 1..5 }
sub
Baz {
@_
}
sub
Context {
wantarray
?
'list'
:
'scalar'
}
"Foo: $(Foo)\n"
;
#prints Foo: 1
"Bar: @(Bar)\n"
;
#prints Bar: 1 2 3 4 5
"Baz: $(Baz('a', 'b'))"
;
#prints Baz: b
"Baz: @(Baz('a', 'b'))"
;
#prints Baz: a b
"$(Context)"
;
#prints scalar
"@(Context)"
;
#prints list
DESCRIPTION
Perl6::Interpolate allows you to interpolate function calls into strings. Because of Perl's contexts, Perl6::Interpolate requires a sigil (a funny character--$ or @ in this case) to tell the function being called which context to use; thus, the syntax is $(
call)
for scalar context or @(
call)
for list context. (This syntax is expected to be used for the same thing in Perl 6, too.)
Perl6::Interpolate will work on both fuction and method calls. It will work on parenthesized calls. It even works outside quotes, where it can be used to control context. (This may be the only way to get a list context in some cases, for example.)
BUGS
Using this module precludes use of $(. However, you can temporarily disable the module while you munge with $(:
Currently this module will make changes inside single-quoted strings. It won't interpolate a call--it'll just look funny.
AUTHOR
Brent Dax <brentdax1@earthlink.net>
COPYRIGHT
Copyright (C) 2001 Brent Dax. All Rights Reserved.
This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.