加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Learning Perl: 8.4. The Binding Operator, =~

发布时间:2020-12-15 20:55:58 所属栏目:大数据 来源:网络整理
导读:? 8.4. The Binding Operator,=~ Matching against $_ is merely the default; the binding operator ( =~ ) tells Perl to match the pattern on the right against the string on the left,instead of matching against $_ . [ ] For example: [ ] The bin

Previous Page

Next Page

?

8.4. The Binding Operator,=~

Matching against $_ is merely the default; the binding operator (=~) tells Perl to match the pattern on the right against the string on the left,instead of matching against $_.[

] For example:

[

] The binding operator is used with some other operations besides the pattern match,as you'll see later.

    my $some_other = "I dream of betty rubble.";
    if ($some_other =~ //brub/) {
      print "Aye,there's the rub./n";
    }

The first time you see it,the binding operator looks like some kind of assignment operator,but it's not. It is saying,"This pattern match that would attach to $_ by defaultmake it work with this string on the left instead." If there's no binding operator,the expression is using $_ by default.

In the (somewhat unusual) example below,$likes_perl is set to a Boolean value according to what the user typed at the prompt. This is a little on the quick-and-dirty side because the line of input itself is discarded. This code reads the line of input,tests that string against the pattern,and discards the line of input.[*] It doesn't use or change $_ at all.

[*] The line of input is not automatically stored into $_ unless the line-input operator (<STDIN>) is alone in the conditional expression of a while loop.

    print "Do you like Perl? ";
    my $likes_perl = (<STDIN> =~ //byes/b/i);
    ...  # Time passes...
    if ($likes_perl) {
      print "You said earlier that you like Perl,so.../n";
      ...
    }

Because the binding operator has fairly high precedence,the parentheses around the pattern-test expression aren't required,so the following line does the same thing as the one aboveit stores the result of the test (and not the line of input) into the variable:

    my $likes_perl = <STDIN> =~ //byes/b/i;

Previous Page

Next Page

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读