Perl 6
Perl 6 IO Tablet: Revision 37
"Overview"[Perl 6 Tablets] - _Chapter:_ "0:History"[Perl 6 History Tablet], "1:Design"[Perl 6 Language Design Tablet], "2:Basics"[Perl 6 Basics Tablet], "3:Var"[Perl 6 Variable Tablet], "4:Op"[Perl 6 Operator Tablet], *"5:IO"[Perl 6 IO Tablet]*, "6:{}"[Perl 6 Block Tablet], "7:Sub"[Perl 6 Subroutine Tablet], "8:OOP"[Perl 6 OOP Tablet], "9:Rx"[Perl 6 Regex Tablet], "10:Meta"[Perl 6 Meta Tablet]
"Intro"[Perl 6 Intro Tablet] - _Appendices:_ "A:Index"[Perl 6 Index Tablet], "B:Tables"[Perl 6 Lookup Tablet], "C:Cook"[Perl 6 Cookbook Tablet], "D:Delta"[Perl 6 Delta Tablet], "E:Best of"[Best Of Perl 6 Tablet], "F:Links"[Perl 6 Links Tablet]

----

{toc: }

_Herbert Breunung: Inside a shell might be a Perl._

This tablet is about the old core business of Perl.

^ Command Line

The shell, command line (or _STDOUT_ to Perl 5 programmer and _$*OUT_ in Perl 6) is the first and most fundamental communication device for a script with it's user. And most tutorials begin just with putting a line to that black window.

^^ say

> say "dear earthlings";

This just drops a "quoted string"{link: [Perl 6 Basics Tablet] Quoting} but any other kind of value is possible. *say* will just append an invisible newline character, according to you operating system. So every time you "say" something, it will start on a fresh line.

You can also give *say* a list of values. Each item will be taken as an expression, that has to evaluated. The results will be combined, just like with *"~"{link: [perl 6 operator tablet] string context}* and the "\n"{link: [Perl 6 Lookup Tablet] Control Chars} will be added on the end.

> say "dear earthlings, we come from ", $our_home_planet, ",that is ", compute_distance($earth, $our_home_planet), 'parsecs away.';

^^ print

.. does pretty much the same as *say*, just without the "\n". Maybe you can memorize it with the following thought: Machines to *print*, character by character without stop and hidden meaning. People on the other hand speak in sentences or speech balloons, which have to be seperated.

^^ printf

It's a print that understands also the syntax of "sprintf"{link: [Perl 6 Basics tablet] sprintf}. Its a very lightweight framework for formated output. If you need more, use formats or even a template engine.

^^ note

Works like *"say"{link: say}* and writes also on the command line, but via the _$*ERR_ handler, formally known as STDERR which can be redirected to other programs who want just listen to you error messages.

^^ warn

The *print* version that writes to to $*ERR.

^^ prompt

That allows a 2 way communication with the commandline. It does an output like *say* and waits then for intput, until the user hits the _enter_ key. It returns everything typed, except the trailing _enter_ per default. So unlike Perl 5 you normally don't have to *chomp* any input from the command line. All following commands behave that way.

> $location = prompt "Where is the next service station, we have almost no anti matter left?";

^^ read

$*CWD

^ Files

"file test operators"{link: [Perl 6 Lookup Tablet] Filetest Ops}

^^ slurp

^^ lines

^^ open

^^ readline

^^ get

^^ getc

^^ read for files

^^ print for files

^^ say for files

^^ open

Synopsis:

> open('new', :w).close

> given open('foo', :w) { # "Anonymous" filehandle
>> .say('Hello, world!');
>> .close
> }

Valid modes are:

r : read

w : write

a : append (Note: you must specify "wa", not just "a")

p : pipe

^^ close

^^ rename for files

^ Directories

^^ dir

^^ mkdir

^^ chdir

^^ chroot

^^ rmdir

^^ rename

^ Sockets

^ Processes

^^ run

^^ runinstead

^^ fork

^^ wait

^^ kill

----

"Overview"[Perl 6 Tablets] - _Chapter:_ "0:History"[Perl 6 History Tablet], "1:Design"[Perl 6 Language Design Tablet], "2:Basics"[Perl 6 Basics Tablet], "3:Var"[Perl 6 Variable Tablet], "4:Op"[Perl 6 Operator Tablet], *"5:IO"[Perl 6 IO Tablet]*, "6:{}"[Perl 6 Block Tablet], "7:Sub"[Perl 6 Subroutine Tablet], "8:OOP"[Perl 6 OOP Tablet], "9:Rx"[Perl 6 Regex Tablet], "10:Meta"[Perl 6 Meta Tablet]
"Intro"[Perl 6 Intro Tablet] - _Appendices:_ "A:Index"[Perl 6 Index Tablet], "B:Tables"[Perl 6 Lookup Tablet], "C:Cook"[Perl 6 Cookbook Tablet], "D:Delta"[Perl 6 Delta Tablet], "E:Best of"[Best Of Perl 6 Tablet], "F:Links"[Perl 6 Links Tablet]

----


Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

 
 
 
File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

 
 
 
Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.

Tag: 

Suggestions: