perl 6 批量处理文件
发布时间:2020-12-15 23:47:37 所属栏目:大数据 来源:网络整理
导读:Perl 6 Language 目前perl6对GB2312的文件支持的不好,请转换为UTF-8的输入文件。简单尝试了一下将之前用perl5写的这个脚本改成了perl 6(未使用额外的包)。 与perl 5有些区别,比如?: 换成了?? !!? 等,更多的请参考Synopsis 。 use v6;my $dir = '.';my TA
Perl 6 Language 目前perl6对GB2312的文件支持的不好,请转换为UTF-8的输入文件。简单尝试了一下将之前用perl5写的这个脚本改成了perl 6(未使用额外的包)。 与perl 5有些区别,比如?: 换成了?? !!? 等,更多的请参考Synopsis 。 use v6; my $dir = '.'; my TABLEN = 4; find(&underscores,$dir); sub find($func,$dir) { my @todo = $dir.IO; while @todo { for @todo.pop.dir { @todo.push($_),next if $_.d; &$func($_) if $_.f && /(.c$)|(.h$)/; } } } sub underscores($filename){ my $hOldfile = open($filename,:r); my $newfilename = $filename~'.'~1000.rand.Int~'.tmp'; my $hNewfile = open($newfilename,:w); my Int $flag = 0; for $hOldfile.lines <-> $_ is rw { for m:global/t/ -> $d { my $curindex = $d.to; my $tmp = ' ' x (($curindex % TABLEN) ?? (TABLEN + 1 - $curindex % TABLEN) !! 1); s/([t]**1)/$tmp/; $flag +|= 1; } $flag +|= 2 if s/s+$//; $hNewfile.print($_~"x0dx0a"); } $hOldfile.close; $hNewfile.close; if $flag { chmod(0o755,$filename); copy($newfilename,$filename); say "$filename modify complete. %%%%%%%%%%%%% code [$flag]."; } else { say "$filename isn't change."; } unlink($newfilename); } 1; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |