=head1 TITLE
Request For New Pragma: Implicit
=head1 VERSION
Maintainer: Bryan C. Warnock <[EMAIL PROTECTED]>
Date: 01 Aug 2000
Version: 1
Mailing List: [EMAIL PROTECTED]
Number: 2
=head1 ABSTRACT
Perl 6 should add a new pragma called C<implicit>.
=head1 DESCRIPTION
I am lazy. I am spoiled by the implicit $_. I like the implicit
$_. Implicit $_ good. Ugh.
I also came to the sysadm / programming world in a long, circuitous
route. I never programmed with toggle switches. I've never seen a
punch card. My first programming was in Commodore 64 Basic.
C64 Basic. No safe-signals there, either. ;)
It did have one good thing, though. One very useful thing, for lazy
people like me. C<print> could be written like C<?>. It just
rolled off the fingers. C<10 ?"Port Perl for the 64!">.
Of course, those days have gone. I've seen the light. I'm a *nix
head and JAPH. But how I still hate typing out print. Particularly
because I do it so much. Oh, sure, I could play games with HERE docs
and the ilk, but I'm too lazy.
But I digress.
There should be an C<implicit> pragma that gives new life and meaning to
void context constructs. In my case, I want it to print to the default
filehandle, (which is also implicit, I might add.)
Scoping needs to be tightly controlled, of course. Don't want someone
else's void context to show up on your display, now do you? And, of course,
it would be defaulted to off. It could continue to ignore constant 0s and
1s. (But those pre-pod embedded comment strings just B<have> to go.)
Ideally, I'd like to use it for printing, but I suppose some other lazy
person may want to use it for something else.
=head1 MOTIVATORS
Laziness, pure and simple.
=head1 IMPLEMENTATION
The front-end would have to detect void usage and either arrange to have
the results passed to a callback, (in which case, would you know what
wantarray() wants to know?) or inject the appropriate term in the
optree.
=head2 SUMMARY OF IMPLEMENTATION
I've no real concrete ideas on this, sorry.
=head2 IMPACT
=over 4
=item *
Impact on Perl 5. Mutual compatibility between Perl 5 and Perl 6, with the
exception of C<use implicit> and the sematics it would add. (Obviously,
other changes to the language notwithstanding.)
=back
=head2 UNKNOWNS
=over 4
=item *
What about subs? Backticks? Things that return meaningless printable
information, like system()?
C<no implicit> would put it on the user. After all, he doesn't have to
use it.
=item *
Would C<;> print the contents of $_ to the default filehandle? ;-)
=back
=head1 REFERENCES
None, currently.