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;