perl6之'Hello World'】的更多相关文章

需求: 只获取 ath 物种的 hairpin 序列 文件格式如下所示,以>打头的为 header,紧跟的为序列[AUCG]+ (Perl5 regexp 格式) #!/usr/bin/env perl6 my Bool $now = False ; # 词法变量还是用 my 声明 # 此外,perl5中的 local 在6 中是没有的 # our, state # temp let 可以作用于声明好的变量上 my Str $seq; for @*ARGS[0].IO.lines -> $l…
Array in Perl6 继承List,而List又继承Iterable,Positional,Cool ARRAY.pop ARRAY.shift ARRAY.push: VALUES ARRAY.push(VALUES) ARRAY.unshift: VALUES ARRAY.unshift(VALUES) #不像Perl5中,会把VALUES数组flatten,Perl6不会 #可以同时指定多个值,用逗号隔开 ARRAY.append(LIST) ARRAY.append: LIST…
Perl6 is a new language, not a improved version of Perl5. Perl6 inherits many good features from many languages, like Python, Perl5, Ruby, ... Since so many Perl6 functions has been appended to Perl5 as features, and almost all methods has a subrouti…
关于JSON: JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,语法简单,各种语言都有相应的库或者模块支持. 因为JSON非常小巧,解析起来又非常简单,我经常会把配置文件组织成JSON格式. 关于JSON::Fast: 在http://modules.perl6.org/上的介绍:A naive, but hopefully fast json parser; drop-in replacement for JSON::Tiny 一个单纯的,快速的J…
安装完perl6之后,当然是要写一下Hello World了. 因为perl6的脚本一般都很短小,所以用不着很笨重的IDE之类的东西,我们用VIM,sublime text这种小型的编辑器 来开始perl6的学习之旅就可以了 首先打开你的编辑器新建一个文件,命名为helloworld.pl,输入下面的代码 #!/usr/bin/perl6 use v6; #这是一行注释 say "Hello World."; # "Hello World.".say; # &quo…
遇到perl6 一直想认真的学习一门脚本语言或者与之类似的语言,因为相对与c++/c来说,一些工作可以很方便的用脚本语言来解决,比如对于日志文件的处理,自动ftp上传. 也看过不少语言的介绍,比如python,ruby,erlang,go等等,由于本人是c语言入门,后来学习中转向了c++,所以习惯了c/c++的编程风格,对于python的 语言风格无法认同,tab缩进区分代码块什么的简直反人类...喜欢python的不要打我...至于erlang,纯粹的函数式语言,用起来挺绕的,不是觉得很方便,…
http://www.cnblogs.com/perl6/p/6911166.html 之前这里有个小小例子, 这里只要是总结一下. HTTP::UserAgent包含了以下模块: ---------------------------------------------------------------------------------------------- Module |Path-Name |File-ID -------------------------------------…
use HTTP::UserAgent; use URI::Encode; Firefox/52.0>); my $bing_url = 'http://cn.bing.com/search?q='; my $choose = rx/'<cite>'(.*?)'</cite>'/;#要查的内容 my $filename = ~now.DateTime~'.txt'; $filename = do given $filename {S:g/':'/-/}; my $fp = o…
创建一个Promise 并自动运行: my $p = Promise.start({say 'Hello, Promise!'}); 如果把代码改成如下, 我们会发现什么也没打印: ;say 'Hello, Promise!'}); 匿名函数 sleep 2 秒, 这时, 它还没运行完, 主程序就退出了, 这里 promise也跟着退出, 所以什么也没打印. 我们可以改写成这样: ;say 'Hello, Promise!'}); ; 是不是觉得有点不太好?因为你有时并不知道程序什么时候运行完成…
来源于个人理解的翻译. 创建一个 promise: my $p = Promise.new; 可以打印运行 的Promise 状态: my $p = Promise.new(); $p.then({say 'hello, world'}); say $p.status; 上面的promise创建好后, 当 $p 状态为 kept或broken 时, 会执行 then 里面的 匿名函数. 但是, 上面的$p状态总是为: Plannd. 所以, 那个 hello, world 总是不能打印. 那怎么…
如果一个 URL 要求POST数据是 JSON格式的, 那我们要怎么发送数据呢? 第一种: HTTP::Request 上一篇说到, 发送 POST 数据, 可以: . $ua.post(url, %data) . $request.add-form-data(%data) $ua.request($request) 在这里, 无论是第一种方法还是第二种方法, 里面所发送的 %data 都会自动编码. JSON也是一种字符串格式, 这两种方法要求%data为一个hash, 那就说明这两种方法不能…
数字, 字母, 下划线 在perl6中, 如果是 数字, 字母, 下划线, 在正则里可以正接写上. > so / True > so 'perl6_' ~~ /_/ True > 非数字, 字母, 下划线 如果不是数字.字母. 下划线, 可以用 \ 反斜线转义, 或用单.双相号包围. > 'name@company.uk' ~~ / name\@co / 锝ame@co锝? > 'name@company.uk' ~~ / name'@'co / 锝ame@co锝? &g…
~~ perl6 中, 要匹配一个正则, 使用 ~~ 智能匹配符. > so 'abcde' ~~ /a.c/ True > so 'abcde' ~~ /a.d/ False > // 或 m 模式中, 默认用 // , 如果要改变, 像perl5一样加 m前缀就行. > ~('abcde' ~~ m! a. !) ab > rx// 如果我们要把正则保存到一个变量中, 可以用 rx // 创建一个表达式. > my $r = 'a.'; a. > $r a.…
Perl6 中的SOCKET就是相当于Perl5 的 IO::Socket::INET. 官方介绍如下: #下面是客户端multi method new( :$host, :$port, :, :$encoding = 'utf-8', :$nl-in = "\r\n", --> IO::Socket::INET:D) #下面是服务端 multi method new( :$localhost, :$localport, :, :$listen, :$encoding = 'ut…
先看一个小例子: ) { #默认参数 say $name; } sub B(:name($name)) { #默认参数为 any say $name; } A(); A(); B(); B(name => 'root'); 这是正常的调用方式. 再看如下代码: sub A($name) { #默认参数 say $name; } sub B() { say 'BBBBBBBB'; } A(); B; B(); &A(); &B(); 可以看到, 当函数没参数时, 可以直接用 B() 来…
代码如下: use HTTP::UserAgent; use JSON::Tiny; my $check-url = 'www.baidu.com'; #say @*ARGS[0]; #检测命令行参数 { ].lc; }else{ say 'no http/https, eg:'; say 'cms-check.p6 www.target.com'; exit; } my $url = 'http://120.24.44.134/yunxi-web/public/home/index'; #sa…
测试站点: http://www.yutian.com.cn/index.action http://www.hjxzyzz.com:8088/pfw/login.action 代码如下: use v6; use HTTP::UserAgent; use HTTP::Request; use URI::Encode; #say @*ARGS; #say {@*ARGS}; { say 'Use: s2.p6 "http://www.target.com/target.action"';…
use v6; =begin pod perl6 中的替换用S/// S有几个可选参数: :g —(长形式::global)全局匹配:替换掉所有的出现 :i —不区分大小写的匹配 :ii —(长形式: :samecase) 保留大小写:不管用作替换字母的大小写,使用原来被替换的字母的大小写 :mm —(长形式::samemark) 保留重音符号:在上面的例子中,字母 o 上的分音符号被保留并被应用到替换字母 u 上 :nth(n) —只替换第 n 次出现的 :x(n) —至多替换 n 次(助记符…
先看一个例子: use v6; use Bailador; my $data = ' <form action="", method="get"> <input name="text" type="text"/> <input type="submit" submit="sumbit" /> </form> '; get '/' =>…
use v6; if (@*ARGS != 1) {say 'Use:scan.p6 ip';exit;} my $check_ip = @*ARGS[0]; $check_ip = '<value>'~$check_ip~'</value>'; say $check_ip; my $stat_file = 'Smbtouch-1.1.1.xml'; my $chang_file = slurp $stat_file; my $swap_data = do given $chang…
use v6; use Bailador; =begin pod 我们在路径设置上, 可以利正则表达式捕获的字符串作为子例程参数 =end pod get '/perl6/(.+)' => sub ($route) { "url : $route"; #这个(.+)全匹配/perl6下面的所有东西 #匹配到这个字符串时, 会把这个字符串作为参数传递给子例程 } get '/admin/(.+)/(.+)' => sub ($route1, $route2) { "…
use v6; #perl6中读取文件方法 #:r 只读, :w 只写, :rw 读写, :a 追加 my $fp = open 'filename.txt', :rw; for $fp.^methods -> $method { say $method; } #向文件写入, 可以用say或print或print或spurt $fp.say('hello, world'); $fp.print("two\n"); $fp.say("three"); $fp.c…
use v6; , :b, :!c; say %ha; say %ha<a>; #这里不能用%ha{a}, {a}表示调用a()函数了, 在perl6中, {}有特别函义 say %ha{'a'};…
时间 Date #Operators ==, <, <= , >, >=, !=, eq, lt, le # Methods $date = Date.new(YEAR, MONTH, DAY, FORMATTER?) $date = Date.new(year => YEAR, month => MONTH?, day => DAY?,FORMATTER?) $date = Date.new(YYYY-MM-DD,FORMATTER?) $date = Date…
Control Flow 注意空格,注意空格,注意空格 和 Perl5不同的是,这些结构都可以返回值,而且即使倒置结构也可以用 block 了 block 可以有逗号 with without orwith {...}; #后面可以加; 这样就成了statement,会被立即执行:默认是不会立即执行的 do {...}; #do可以让block立即执行,并和sub/method一样返回最后执行的语句 #do的block也只有需要返回值的时候才被执行 #do也可以在没有{}的情况用,只有是一个 e…
say Blob.new('abcde'.encode('utf8')).unpack("H*"); say '0x'~'abcde'.encode('utf8').unpack("H*");   use experimental :pack; say Blob.new(..).unpack("H*"); # OUTPUT: «(1 2 3 4 5 6 7 8 9 10)␤» 可以看这里的链接…
# command with arguments my $proc = Proc::Async.new('whoami'); # subscribe to new output from out and err handles: $proc.stdout.tap(-> $v { print "Username: $v" }, quit => { say 'caught exception ' ~ .^name });#$proc.stderr.tap(-> $v {…
use HTTP::UserAgent; my $ua = HTTP::UserAgent.new; say 'All method:'; say $ua.^methods; my %data = :cmd('whoami'); my $result = $ua.post('http://localhost/1.php', %data); say $result.content;…
如下命安装必要的包: sudo apt install libssl1.0.0 libssl-dev zef install IO::Socket::SSL zef install Net::HTTP…
> ,,, { => , => } > my $a = :%h h => { => , => } > $a.perl :h({, }) > my %h2 = 'a','b' {a => b} > my $a = :%h,:%h2 (h => { => , => } h2 => {a => b}) > $a.perl :h({, }) > $a.Str h > $a h => { =>…