perl 匹配, 没看懂?

hjjdebug 2013-01-22 11:03:01
my $str = 'hello, hello, hell ';
my $count = @{[$str =~ m/hell/g]};


匹配表达式可以返回标量上下文 为 1 或 没有
匹配表达式可以返回数组上下文
此处的$count 显然是获取数组的个数。
整个的意思是获取匹配的个数

但还有以下问题:

1. 方括号把匹配表达式括起来是什么意思 ?
2. 大括号把方括号括住又是什么意思 ?
3. @来修饰一个大括号又是什么意思 ?

thanks.
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bugs2k 2013-01-22
  • 打赏
  • 举报
回复
1、方括号创建一个匿名数组,以标量方式引用 2、@{将匿名数组的标量引用看做为一个数组 可以看做如下的简写:
my $str = 'hello, hello, hell ';
my $arr = [$str =~ m/hell/g];
my $count = @{$arr};
zjs100901 2013-01-22
  • 打赏
  • 举报
回复
牛啊,在什么地方看到的? 另一种简单的方法:
my $str = 'hello, hello, hell ';
my @array = $str =~ m/hell/g;
my $count = @array;
hjjdebug 2013-01-22
  • 打赏
  • 举报
回复
thanks!
hjjdebug 2013-01-22
  • 打赏
  • 举报
回复
to: bugs2k 1. 方括号创建一个匿名数组,可以理解,付给标量是对数组的引用。 第二条解释不是很清楚。跨度太大。 需要分开解释, 花括号括住一个引用是什么意思? @显然是一个数组, @ 修饰大括号? @ 能修饰方括号,小括号吗? 所以还需要详细解释。 thanks!

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧