perl

正则表达式
#!/user/bin/perl
$_="aabbccaa"; 
if(/(aa)?(bb)(cc)\1/){
    print "XXXX\n"
}
$_="bbccaa";
if(/(aa)?(bb)(cc)\1/){
    print "XXXX\n";
}
else{
	print "XXXX\n";
}

?表示匹配0次或者1次,\1引用前面第一个分组(aa),如果不存在,\1无效果
打印结果如下:
XXXX
YYYY

#!/user/bin/perl
$_="bbccbb"; 
if(/(?:aa)?(bb)(cc)\1/){
    print "XXXX\n"
}

?:表示不捕获第一个分组(aa),打印结果:
XXXX

#!/user/bin/perl
$_="aabbaadddd"; 
if(/(?<a1>aa)(?<a2>bb)$+{a1}/){
    print "$+{a1}\n"
}
$_="cccaabbaadddd"; 
if(/bb/){
    print "$`\n";
    print "$&\n";
    print "$'\n";
}

打印值为
aa
cccaa
bb
aadddd

安装模块
sudo cpanm --mirror http://mirrors.163.com/cpan --mirror-only 模块名称
%和$变量
https://blog.youkuaiyun.com/weixin_33802505/article/details/91920090
sys_wait_h
#!/usr/bin/perl
#use POSIX ":sys_wait_h";
my $a=10;
for($i=1;$i<=3;$i++){
    my $pid=fork();
    if (!defined($pid)) {
        print "Error in fork: $!";
        exit 1;
    }
    if ($pid == 0 ) {
        if($i==1){
            sleep(9);
            $b1=$a+1;
            print "$b1\t";
            exit 0;
        }
        elsif($i==2){
            sleep(5);
            $b2=$a+10;
            print "$b2\t";
            exit 0;
        }
        else{
            sleep(3);
            $b3=$a+100;
            print "$b3\t";
            exit 0;
        }
    }
}
print "~~~~~~~~~~split~~~~~~~~~~~\n";

while (($collect = waitpid(-1, WNOHANG)) > 0) {
    1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值