一些perl中实用的操作记录

  • 跳过空行:

    • next if /^\s*$/;
  • 变量内插:

    • my $x = 1; my $y = 2; print "$x + $y = @{[ $x + $y ]}"
  • 根据值对数组下标排序:

    • my $max_ele_index = (sort {$data[$b] <=> $data[$a]} 0..$#data)[0];
  • 定长分割字符串:

    • my @ret=$str=~ /.{4}/g; 必须是整倍数,否则剩余部分会被舍弃
  • 格式化:

    • sprintf("%.3f", 0.031415);
  • 返回哈希key的列表:

    • my @arr = keys %hash;
  • 列表元素筛选:

    • my @ret = grep { $_ > $target } @arr;
    • my $num = grep { $_ > $target } @arr;
  • 列表元素更改:

    • my @new = map {$_ eq "xx" ? $_ = "yy" : $_ } @arr;
  • 单列内容保持顺序去重:

    • perl -ne 'print unless $h{$_}++;'
posted @ 2023-02-15 14:20  天使不设防  阅读(41)  评论(0编辑  收藏  举报