perl中的默认变量与Z/map介绍

use v6;
=begin pod

    @*ARGS 命令行参数, 不含脚本名
    $*PROGRAM-NAME:当前运行脚本的相对路径
    $*PROGRAM:当前运行脚本的文件名称
    $*CWD:当前工作路径
    $*IN:标准输入流(STDIN),你可以使用$*IN.get来读取其中的一行
    $*PID:当前进程PID
    $*EXECUTABLE-NAME:运行当前脚本的二进制文件名称
    $*EXECUTABLE:运行当前脚本的二进制文件的绝对路径
    $*TMPDIR:用于存放临时文件的绝对路径
    $_ 默认内置变量, 可用$^value_name代替

=end pod


for  @*ARGS -> $name {
  say $name;
}

for 1..10 {say $_;}
for 'a'..'z' {say $^char;}

#for中编历数组时可以多个值
for 1..6 -> $one, $two {say $one, ' - ',$two;}
#参数不够时可以用可选参数
for 1..7 -> $one, $two? {say $one, ' - ',$two;}
#如果要从多个数组中编历, 可以用 Z
my @one = 1..6;
my @two = 'a'..'f';
for @one Z @two -> $one, $two {say $one, $two;}
for @one Z @two -> ($one, $two) {say $one, $two;}
#注意上面加括号与不加的区别
#不加括号是, 一个参数里面取值为两个数组一边一个
#加括号时, 参数个数要与数组个数对应
@one.append('7');
for @one Z @two -> $one, $two, $three? {say $one, $two, $three;}

#map当函数用
my @mapdata = 1..5;
my @map_f = map {$_ * 2}, @mapdata;
say @map_f;

my @map_end = @mapdata.map( -> $name { $name+10});
say @map_end;
原文地址:https://www.cnblogs.com/perl6/p/6940717.html